[PATCH] sync amdgpu scanout update event before mode setting
Michel Dänzer
michel at daenzer.net
Wed Apr 18 08:55:29 UTC 2018
On 2018-04-17 01:11 PM, Jim Qu wrote:
> There is a case that when set screen from reverse to normal, the old
> scanout damage is freed in modesetting before sanout update handler,
> so it causes segment fault issue.
Good catch, thanks.
> diff --git a/src/drmmode_display.c b/src/drmmode_display.c
> index 85970d1..ea38e29 100644
> --- a/src/drmmode_display.c
> +++ b/src/drmmode_display.c
> @@ -902,6 +902,9 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
> drmmode_crtc_wait_pending_event(drmmode_crtc, pAMDGPUEnt->fd,
> drmmode_crtc->flip_pending);
>
> + drmmode_crtc_wait_pending_event(drmmode_crtc, pAMDGPUEnt->fd,
> + drmmode_crtc->scanout_update_pending);
> +
> if (!drmmode_set_mode(crtc, fb, mode, x, y))
> goto done;
>
>
The two drmmode_crtc_wait_pending_event invocations can be combined like
this:
drmmode_crtc_wait_pending_event(drmmode_crtc, pAMDGPUEnt->fd,
drmmode_crtc->flip_pending ||
drmmode_crtc->scanout_update_pending);
Okay if I make that modification before pushing?
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the amd-gfx
mailing list