summaryrefslogtreecommitdiff
path: root/src/radeon_present.c
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2018-08-16 17:44:45 +0200
committerMichel Dänzer <michel@daenzer.net>2018-08-17 09:59:42 +0200
commitba83a866af5a3784fc4822614375cc081e93197c (patch)
tree228610749b276700c692d573ee8364f6c208af2f /src/radeon_present.c
parent93621e408c17dd9e082236c17f051c06558d7f4d (diff)
Add radeon_drm_handle_event wrapper for drmHandleEvent
Instead of processing DRM events directly from drmHandleEvent's callbacks, there are three phases: 1. drmHandleEvent is called, and signalled events are re-queued to _signalled lists from its callbacks. 2. Signalled page flip completion events are processed. 3. Signalled vblank events are processed. This should make sure that we never call drmHandleEvent from one of its callbacks, which would usually result in blocking forever. (Ported from amdgpu commit 739181c8d3334ff14b5a607895dfdeb29b0d9020) Acked-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/radeon_present.c')
-rw-r--r--src/radeon_present.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/radeon_present.c b/src/radeon_present.c
index 2982d728..ffc14a0e 100644
--- a/src/radeon_present.c
+++ b/src/radeon_present.c
@@ -110,7 +110,7 @@ radeon_present_flush_drm_events(ScreenPtr screen)
if (r <= 0)
return 0;
- return drmHandleEvent(pRADEONEnt->fd, &drmmode->event_context) >= 0;
+ return radeon_drm_handle_event(pRADEONEnt->fd, &drmmode->event_context) >= 0;
}
/*