From 89d38e976fd6ba6e026cda7c5d05971f1f177f13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Tue, 10 Jul 2018 18:51:00 +0200 Subject: 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 --- src/radeon_kms.c | 3 +++ 1 file changed, 3 insertions(+) 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) -- cgit v1.2.3