present: Support async flips

The xserver Present code only calls radeon_present_flip with
sync_flip=FALSE if radeon_present_screen_init sets
PresentCapabilityAsync, and the latter only sets it if the kernel driver
advertises support for async flips.

(Ported from radeon commit 1ca677309720e2f6c953c9e76f5b34c22a4416c6)

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Michel Dänzer
2016-05-10 15:57:04 +09:00
committed by Michel Dänzer
parent 744ac5faff
commit 86f9918388

View File

@@ -233,9 +233,6 @@ amdgpu_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
if (info->hwcursor_disabled)
return FALSE;
if (!sync_flip)
return FALSE;
if (info->drmmode.dri2_flipping)
return FALSE;
@@ -312,7 +309,7 @@ amdgpu_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc,
pixmap, event_id, event, crtc_id,
amdgpu_present_flip_event,
amdgpu_present_flip_abort,
FLIP_VSYNC);
sync_flip ? FLIP_VSYNC : FLIP_ASYNC);
if (!ret)
xf86DrvMsg(scrn->scrnIndex, X_ERROR, "present flip failed\n");
else