mirror of
https://github.com/X11Libre/xf86-video-amdgpu.git
synced 2026-03-24 01:24:31 +00:00
DRI2: Also clear dri2_flipping when client disconnects before event
Fixes the following problem: With DRI3 enabled, run glxgears with LIBGL_DRI3_DISABLE=1, make it fullscreen and press Escape while it's still fullscreen. This could result in dri2_flipping not getting cleared, spuriously preventing apps using DRI3 from flipping. (Ported from radeon commit e87365117acbd80b7d80fbb5eb30890ef7153291) Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Michel Dänzer
parent
a58bfa9820
commit
acd5da56f5
@@ -526,6 +526,9 @@ xf86CrtcPtr amdgpu_dri2_drawable_crtc(DrawablePtr pDraw, Bool consider_disabled)
|
||||
static void
|
||||
amdgpu_dri2_flip_event_abort(ScrnInfoPtr scrn, void *event_data)
|
||||
{
|
||||
AMDGPUInfoPtr info = AMDGPUPTR(scrn);
|
||||
|
||||
info->drmmode.dri2_flipping = FALSE;
|
||||
free(event_data);
|
||||
}
|
||||
|
||||
@@ -533,7 +536,6 @@ static void
|
||||
amdgpu_dri2_flip_event_handler(ScrnInfoPtr scrn, uint32_t frame, uint64_t usec,
|
||||
void *event_data)
|
||||
{
|
||||
AMDGPUInfoPtr info = AMDGPUPTR(scrn);
|
||||
DRI2FrameEventPtr flip = event_data;
|
||||
unsigned tv_sec, tv_usec;
|
||||
DrawablePtr drawable;
|
||||
@@ -578,7 +580,6 @@ amdgpu_dri2_flip_event_handler(ScrnInfoPtr scrn, uint32_t frame, uint64_t usec,
|
||||
DRI2SwapComplete(flip->client, drawable, frame, tv_sec, tv_usec,
|
||||
DRI2_FLIP_COMPLETE, flip->event_complete,
|
||||
flip->event_data);
|
||||
info->drmmode.dri2_flipping = FALSE;
|
||||
break;
|
||||
default:
|
||||
xf86DrvMsg(scrn->scrnIndex, X_WARNING,
|
||||
|
||||
Reference in New Issue
Block a user