[PATCH xf86-video-amdgpu 2/2] Wait for pending flips in drmmode_output_set_tear_free
Samuel Li
samuel.li at amd.com
Thu Apr 26 18:48:00 UTC 2018
On 2018-04-26 11:58 AM, Michel Dänzer wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> 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.
>
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
> ---
> src/drmmode_display.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/src/drmmode_display.c b/src/drmmode_display.c
> index cf1e5d1f1..4fac645b9 100644
> --- a/src/drmmode_display.c
> +++ b/src/drmmode_display.c
> @@ -1750,6 +1750,15 @@ drmmode_output_set_tear_free(AMDGPUEntPtr pAMDGPUEnt,
> 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
Trailing white space.
Otherwise the two patches are
Reviewed-by: Samuel Li <Samuel.Li at amd.com>
Sam
> + * drmmode_crtc_update_tear_free, to prevent a nested
> + * drmHandleEvent call, which would hang
> + */
> + drmmode_crtc_wait_pending_event(drmmode_crtc,
> + pAMDGPUEnt->fd,
> + drmmode_crtc->flip_pending);
> drmmode_set_mode_major(crtc, &crtc->mode, crtc->rotation,
> crtc->x, crtc->y);
> }
>
More information about the amd-gfx
mailing list