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>
This commit is contained in:
Michel Dänzer
2018-07-10 18:51:00 +02:00
committed by Michel Dänzer
parent 9f2409c4d3
commit 89d38e976f

View File

@@ -1167,6 +1167,9 @@ static void RADEONBlockHandler_KMS(BLOCKHANDLER_ARGS_DECL)
xf86CrtcPtr crtc = xf86_config->crtc[c]; xf86CrtcPtr crtc = xf86_config->crtc[c];
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
if (drmmode_crtc->rotate.pixmap)
continue;
if (drmmode_crtc->tear_free) if (drmmode_crtc->tear_free)
radeon_scanout_flip(pScreen, info, crtc); radeon_scanout_flip(pScreen, info, crtc);
else if (drmmode_crtc->scanout[drmmode_crtc->scanout_id].pixmap) else if (drmmode_crtc->scanout[drmmode_crtc->scanout_id].pixmap)