summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2018-07-10 18:51:00 +0200
committerMichel Dänzer <michel@daenzer.net>2018-07-12 18:07:05 +0200
commit89d38e976fd6ba6e026cda7c5d05971f1f177f13 (patch)
tree49a5754dd6851de2f76fd074203192ee25457d50
parent9f2409c4d3a9ecad8e769783e307e57a75b1255e (diff)
Don't call scanout_flip/update with a legacy RandR scanout buffer
It means we are not using our own scanout buffers. Fixes crash when TearFree is supposed to be enabled, but drmmode_handle_transform doesn't set crtc->driverIsPerformingTransform. Bugzilla: https://bugs.freedesktop.org/105736 (Ported from amdgpu commit 463477661c88cab3a87746499e5838c5b9f9a13b) Acked-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--src/radeon_kms.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index cdda8962..15dca0de 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -1167,6 +1167,9 @@ static void RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL)
xf86CrtcPtr crtc = xf86_config->crtc[c];
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
+ if (drmmode_crtc->rotate.pixmap)
+ continue;
+
if (drmmode_crtc->tear_free)
radeon_scanout_flip(pScreen, info, crtc);
else if (drmmode_crtc->scanout[drmmode_crtc->scanout_id].pixmap)