summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2016-05-10 15:57:04 +0900
committerMichel Dänzer <michel@daenzer.net>2016-05-12 16:29:23 +0900
commit86f991838824494e68ac277fa27cbd88c23a5ee8 (patch)
tree0f7cc5853303875082a96ce2c88d96cc9ab0a4d1
parent744ac5faff7f58e26fa76974b6bdc345ea4c7c79 (diff)
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>
-rw-r--r--src/amdgpu_present.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/amdgpu_present.c b/src/amdgpu_present.c
index e39b2d2..63ba812 100644
--- a/src/amdgpu_present.c
+++ b/src/amdgpu_present.c
@@ -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