xf86-video-amdgpu: Branch 'master' - 2 commits

Michel Dänzer daenzer at kemper.freedesktop.org
Wed Apr 25 10:19:41 UTC 2018


 src/amdgpu_kms.c      |    3 +++
 src/drmmode_display.c |    6 +-----
 2 files changed, 4 insertions(+), 5 deletions(-)

New commits:
commit 8e544b4a0de6717feb4abf00052d57c5b726b5ce
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Mon Apr 23 18:52:02 2018 +0200

    Simplify drmmode_handle_transform
    
    Set crtc->driverIsPerformingTransform for any case we can handle before
    calling xf86CrtcRotate. We already clear it afterwards when the latter
    clears crtc->transform_in_use.
    
    This should allow our separate scanout buffer mechanism to be used in
    more cases.
    
    Acked-by: Alex Deucher <alexander.deucher at amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 240e88b..536890d 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -631,13 +631,9 @@ drmmode_handle_transform(xf86CrtcPtr crtc)
 	Bool ret;
 
 #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,903,0)
-	if (crtc->transformPresent || crtc->rotation != RR_Rotate_0)
-	    crtc->driverIsPerformingTransform = XF86DriverTransformOutput;
-	else
-	    crtc->driverIsPerformingTransform = XF86DriverTransformNone;
+	crtc->driverIsPerformingTransform = XF86DriverTransformOutput;
 #else
 	crtc->driverIsPerformingTransform = !crtc->transformPresent &&
-		crtc->rotation != RR_Rotate_0 &&
 		(crtc->rotation & 0xf) == RR_Rotate_0;
 #endif
 
commit 463477661c88cab3a87746499e5838c5b9f9a13b
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Mon Apr 23 18:44:06 2018 +0200

    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
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index c86c787..5ea90f9 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -1055,6 +1055,9 @@ static void AMDGPUBlockHandler_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)
 				amdgpu_scanout_flip(pScreen, info, crtc);
 			else if (drmmode_crtc->scanout[drmmode_crtc->scanout_id].pixmap)


More information about the xorg-commit mailing list