[PATCH] sync amdgpu scanout update event before mode setting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux