diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2018-08-16 17:44:45 +0200 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2018-08-17 09:59:42 +0200 |
commit | ba83a866af5a3784fc4822614375cc081e93197c (patch) | |
tree | 228610749b276700c692d573ee8364f6c208af2f /src/radeon_present.c | |
parent | 93621e408c17dd9e082236c17f051c06558d7f4d (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.c | 2 |
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; } /* |