[Bug 94829] X crash when starting minetest with compositing and DRI3 PRIME
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue Apr 5 20:41:29 UTC 2016
https://bugs.freedesktop.org/show_bug.cgi?id=94829
--- Comment #21 from Chris Wilson <chris at chris-wilson.co.uk> ---
There is still the problem that the queues are clogged with future vblank
events, and it seems our handling of that situation is less than ideal. Not too
sure how the frozen display itself manifests yet (some combination of bugs to
be solved), but something we can try to mitigate the immediate issue would be:
diff --git a/src/sna/sna_present.c b/src/sna/sna_present.c
index b880aac..f0a17be 100644
--- a/src/sna/sna_present.c
+++ b/src/sna/sna_present.c
@@ -248,8 +248,7 @@ static bool sna_fake_vblank(struct sna_present_event *info)
return TimerSet(NULL, 0, delay, sna_fake_vblank_handler, info);
}
-static bool sna_present_queue(struct sna_present_event *info,
- uint64_t last_msc)
+static bool sna_present_queue(struct sna_present_event *info, uint64_t
last_msc)
{
union drm_wait_vblank vbl;
@@ -264,7 +263,8 @@ static bool sna_present_queue(struct sna_present_event
*info,
vbl.request.type = DRM_VBLANK_ABSOLUTE | DRM_VBLANK_EVENT;
vbl.request.sequence = info->target_msc;
vbl.request.signal = (uintptr_t)MARK_PRESENT(info);
- if (sna_wait_vblank(info->sna, &vbl, sna_crtc_pipe(info->crtc))) {
+ if (info->target_msc - last_msc > 60 ||
+ sna_wait_vblank(info->sna, &vbl, sna_crtc_pipe(info->crtc))) {
DBG(("%s: vblank enqueue failed, faking\n", __FUNCTION__));
if (!sna_fake_vblank(info))
return false;
My main concern with such a patch is the 60 frame / 1s heuristic.
--
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20160405/0071fe6e/attachment.html>
More information about the intel-gfx-bugs
mailing list