mirror of
https://github.com/X11Libre/xf86-video-ati.git
synced 2026-03-24 01:24:43 +00:00
Wait for pending flips in drmmode_output_set_tear_free
This prevents a nested call to drmHandleEvent, which would hang. Fixes hangs when disabling TearFree on a CRTC while a DRI3 client is page flipping. (Ported from amdgpu commit 04947b83cce3a7782e59dece2c7797cc396c1e05) Acked-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Michel Dänzer
parent
f01d8cf2bd
commit
cf8bc72e34
@@ -1754,6 +1754,14 @@ drmmode_output_set_tear_free(RADEONEntPtr pRADEONEnt,
|
||||
drmmode_output->tear_free = tear_free;
|
||||
|
||||
if (crtc) {
|
||||
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
|
||||
|
||||
/* Wait for pending flips before drmmode_set_mode_major calls
|
||||
* drmmode_crtc_update_tear_free, to prevent a nested
|
||||
* drmHandleEvent call, which would hang
|
||||
*/
|
||||
drmmode_crtc_wait_pending_event(drmmode_crtc, pRADEONEnt->fd,
|
||||
drmmode_crtc->flip_pending);
|
||||
drmmode_set_mode_major(crtc, &crtc->mode, crtc->rotation,
|
||||
crtc->x, crtc->y);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user