mirror of
https://github.com/X11Libre/xf86-video-amdgpu.git
synced 2026-03-24 01:24:31 +00:00
3ff2cc225f6bc08364ee007fa54e9d0150adaf11
drmHandleEvent can be interrupted by a signal in read(), in which case it doesn't process any events but returns -1, which drm_handle_event propagated to its callers. This could cause the following failure cascade: 1. drm_wait_pending_flip stopped waiting for a pending flip. 2. Its caller cleared drmmode_crtc->flip_pending before the flip completed. 3. Another flip was attempted but got an unexpected EBUSY error because the previous flip was still pending. 4. TearFree was disabled due to the error. The solution is to call drmHandleEvent if it was interrupted by a signal. We can do that in drm_handle_event, because when that is called, either it is known that there are events ready to be processed, or the caller has to wait for events to arrive anyway. v2: * Use ErrorF instead of xf86DrvMsg with hard-coded screen 0. Bugzilla: https://bugs.freedesktop.org/109364 Reviewed-by: Alex Deucher <alexander.deucher@amd.com> # v1
xf86-video-amdgpu - Xorg driver for AMD Radeon GPUs using the amdgpu kernel driver
Questions regarding this software should be directed at the amd-gfx mailing list.
Please submit bug reports to the Xorg bugzilla.
The master development code repository can be found at FreeDesktop Gitlab.
Please use merge requests for patch submission.
See the X.org wiki for further patch submission instructions and more information on the git code manager.
Description
Languages
C
94.7%
M4
2.8%
Makefile
1.6%
Perl
0.8%