From: bugzilla-daemon@bugzilla.kernel.org
To: dri-devel@lists.freedesktop.org
Subject: [Bug 204181] NULL pointer dereference regression in amdgpu
Date: Thu, 22 Aug 2019 13:14:28 +0000 [thread overview]
Message-ID: <bug-204181-2300-cjji4r1Gek@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-204181-2300@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=204181
--- Comment #42 from Michel Dänzer (michel@daenzer.net) ---
(In reply to Alex Deucher from comment #37)
> The TearFree option is there to deal with compositors that do not support
> sync to vblank.
Also for cases where a compositor cannot prevent tearing, in particular with
rotation and other transforms via RandR.
> The ddx allocates another front buffer and then that buffer
> is updated synchronized with vblank with the data from the real front
> buffer. So it uses an additional buffer.
Right, that's one of the main reasons why TearFree isn't enabled in all cases
by default, another one being that it can incur (at least) one refresh cycle
output latency.
(In reply to Sergey Kondakov from comment #38)
> It's a shame, I've already begun believing in "The Silver Bullet of VSync".
If TearFree was a silver bullet, it would be enabled by default in all cases.
:) (It already is in cases where a compositor cannot prevent tearing, per
above)
> And it's completely "software" GPU-agnostic function, so alternatives like
> Wayland would have to just reimplement it the same way ?
More like the other way around actually; I consider TearFree sort of a poor
man's Wayland compositor. The latter generally handle this better, or are at
least in a better position to handle it.
> It always adds a buffer or "smart-enough" compositor can opt-out ?
Currently the former. It would be possible to eliminate the additional buffers
while a compositor / other fullscreen client is using page flipping, but I
never got around to implementing that.
> Or "the correct fix for latency" with TF is disabling vsync everywhere (such
> as kwin's GLPreferBufferSwap=n) else and let it handle it ?
I doubt that'll help for latency, and will waste energy generating frames which
are never visible.
> Strange that "the magic" of TF isn't done directly in compositors or kernel
> then.
Compositors can do so, with some exceptions per above, but in cases where they
can prevent tearing, they're generally preferable to TearFree.
The kernel cannot do this transparently though.
(In reply to Alex Deucher from comment #39)
> multiple display are really hard to deal with. The display timing may be
> different, the blanking periods may not align, etc. X uses a single surface
> for each multi-display desktopso when you are updating multiple displays, if
> the timings are not aligned, one display will show older content. For this
> to work smoothly, you really need the compositor to have each display using
> it's own set of buffers and doing vsynced rendering to each display
> separately.
That wouldn't necessarily make much if any visible difference though, as the
displays can still show inconsistent contents sometimes if their timings aren't
synchronized, and tearing within a display can be avoided even with a single
scanout buffer. The main benefit of separate scanout buffers is that the
application can re-use buffers for rendering new frames earlier, but OTOH
there's the overhead cost of compositing (because the client buffers can't be
used directly for page flipping like this). This is pretty much how TearFree
works, BTW (except due to the Xorg architecture, it can't actualy allow a
compositor / other fullscreen client to re-use buffers earlier when
sync-to-vblank is enabled for the client).
(In reply to Sergey Kondakov from comment #40)
> Anyway, I was searching on my suspicion about kwin's vsync
> behaviour and stumbled on this treat:
> https://bugs.kde.org/show_bug.cgi?id=395632#c45 - new kwin developer working
> on that and multi-threaded per-output vsync _right now_, wants testers.
That's not possible with the current Xorg architecture. It only allows flipping
all displays (connected to a single GPU) together.
The way forward to solve this is Wayland.
--
You are receiving this mail because:
You are watching the assignee of the bug.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-08-22 13:14 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-15 10:11 [Bug 204181] New: NULL pointer dereference regression in amdgpu bugzilla-daemon
2019-07-15 13:07 ` [Bug 204181] " bugzilla-daemon
2019-07-15 15:43 ` bugzilla-daemon
2019-07-15 15:43 ` bugzilla-daemon
2019-07-15 15:45 ` bugzilla-daemon
2019-07-15 15:48 ` bugzilla-daemon
2019-07-15 15:50 ` bugzilla-daemon
2019-07-15 15:50 ` bugzilla-daemon
2019-07-15 15:53 ` bugzilla-daemon
2019-07-15 15:56 ` bugzilla-daemon
2019-07-15 15:58 ` bugzilla-daemon
2019-07-15 15:59 ` bugzilla-daemon
2019-07-16 15:29 ` bugzilla-daemon
2019-07-16 16:36 ` bugzilla-daemon
2019-07-16 16:52 ` bugzilla-daemon
2019-07-16 16:55 ` bugzilla-daemon
2019-07-24 18:33 ` bugzilla-daemon
2019-07-25 10:52 ` bugzilla-daemon
2019-07-25 14:21 ` bugzilla-daemon
2019-07-25 15:42 ` bugzilla-daemon
2019-07-25 15:50 ` bugzilla-daemon
2019-07-26 12:23 ` bugzilla-daemon
2019-07-26 16:02 ` bugzilla-daemon
2019-07-30 21:41 ` bugzilla-daemon
2019-07-31 16:28 ` bugzilla-daemon
2019-08-01 6:13 ` bugzilla-daemon
2019-08-02 2:21 ` bugzilla-daemon
2019-08-04 5:17 ` bugzilla-daemon
2019-08-07 17:43 ` bugzilla-daemon
2019-08-14 6:43 ` bugzilla-daemon
2019-08-14 19:06 ` bugzilla-daemon
2019-08-15 22:05 ` bugzilla-daemon
2019-08-17 5:13 ` bugzilla-daemon
2019-08-19 13:39 ` bugzilla-daemon
2019-08-19 15:11 ` bugzilla-daemon
2019-08-21 13:38 ` bugzilla-daemon
2019-08-21 14:37 ` bugzilla-daemon
2019-08-21 15:27 ` bugzilla-daemon
2019-08-21 18:36 ` bugzilla-daemon
2019-08-21 19:28 ` bugzilla-daemon
2019-08-21 21:39 ` bugzilla-daemon
2019-08-21 21:51 ` bugzilla-daemon
2019-08-22 13:14 ` bugzilla-daemon [this message]
2019-08-23 21:02 ` bugzilla-daemon
2019-08-24 9:43 ` bugzilla-daemon
2019-08-26 5:32 ` bugzilla-daemon
2019-09-04 4:50 ` bugzilla-daemon
2019-09-06 10:37 ` bugzilla-daemon
2019-09-06 10:38 ` bugzilla-daemon
2019-09-20 1:58 ` bugzilla-daemon
2019-09-20 13:19 ` bugzilla-daemon
2019-09-20 14:04 ` bugzilla-daemon
2019-09-21 5:26 ` bugzilla-daemon
2019-09-27 3:50 ` bugzilla-daemon
2019-09-27 12:50 ` bugzilla-daemon
2019-09-27 13:19 ` bugzilla-daemon
2019-09-27 20:18 ` bugzilla-daemon
2019-09-28 0:07 ` bugzilla-daemon
2019-09-29 18:10 ` bugzilla-daemon
2019-09-29 21:54 ` bugzilla-daemon
2019-09-30 2:07 ` bugzilla-daemon
2019-09-30 2:09 ` bugzilla-daemon
2019-11-05 19:38 ` bugzilla-daemon
2019-12-12 19:04 ` bugzilla-daemon
2020-06-19 3:13 ` bugzilla-daemon
2020-06-19 3:14 ` bugzilla-daemon
2020-07-26 22:49 ` bugzilla-daemon
2020-07-26 22:50 ` bugzilla-daemon
2022-11-10 4:02 ` bugzilla-daemon
2022-12-23 9:17 ` bugzilla-daemon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-204181-2300-cjji4r1Gek@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@bugzilla.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).