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

Michel Dänzer daenzer at kemper.freedesktop.org
Tue Feb 16 07:34:42 UTC 2016


 src/amdgpu_kms.c      |   30 ++++++++++++++----------------
 src/drmmode_display.c |    2 +-
 2 files changed, 15 insertions(+), 17 deletions(-)

New commits:
commit a36bbfd98b96426bbe0be3923c64da7ec0e565d0
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Mon Feb 15 18:41:51 2016 +0900

    HAS_DIRTYTRACKING_ROTATION also supports multiple CRTCs
    
    (ported from radeon commit ff9a6b6f079a8419f4e6fadfee778060618bf735)
    
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 40a134c..896b9d2 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -905,7 +905,7 @@ static Bool drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix)
 			if (max_height < iter->mode.VDisplay)
 				max_height = iter->mode.VDisplay;
 		}
-#ifndef HAS_DIRTYTRACKING2
+#if !defined(HAS_DIRTYTRACKING_ROTATION) && !defined(HAS_DIRTYTRACKING2)
 		if (iter != crtc) {
 			ErrorF
 			    ("Cannot do multiple crtcs without X server dirty tracking 2 interface\n");
commit a37746ffceaed83e48e48fb05439be7e020dd2ea
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Mon Feb 15 18:35:54 2016 +0900

    Load fb module before glamoregl/shadow modules
    
    Fixes unresolved symbols on some systems.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93105
    (ported from radeon commit 78fbca095ae9887a2d3de48bb07975e2d1126e68)
    
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index c466362..7bbef32 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -798,6 +798,10 @@ Bool AMDGPUPreInit_KMS(ScrnInfoPtr pScrn, int flags)
 		goto fail;
 	}
 
+	/* Get ScreenInit function */
+	if (!xf86LoadSubModule(pScrn, "fb"))
+		return FALSE;
+
 	if (!AMDGPUPreInitAccel_KMS(pScrn))
 		goto fail;
 
@@ -883,10 +887,6 @@ Bool AMDGPUPreInit_KMS(ScrnInfoPtr pScrn, int flags)
 	/* Set display resolution */
 	xf86SetDpi(pScrn, 0, 0);
 
-	/* Get ScreenInit function */
-	if (!xf86LoadSubModule(pScrn, "fb"))
-		return FALSE;
-
 	if (!xf86SetGamma(pScrn, zeros))
 		return FALSE;
 
commit 59c0a6807110eca829c6708e16585a38f39a5c17
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Mon Feb 15 18:28:13 2016 +0900

    Don't advertise any PRIME offloading capabilities without acceleration
    
    Acceleration is required even for display offloading. Trying to enable
    display offloading without acceleration resulted in a crash.
    
    (ported from radeon commit b19417e2fddf4df725951aea5ad5e9558338f59e)
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index b9e4eb7..c466362 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -678,25 +678,23 @@ static Bool amdgpu_get_tile_config(ScrnInfoPtr pScrn)
 static void AMDGPUSetupCapabilities(ScrnInfoPtr pScrn)
 {
 #ifdef AMDGPU_PIXMAP_SHARING
+	AMDGPUInfoPtr info = AMDGPUPTR(pScrn);
 	AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(pScrn);
 	uint64_t value;
 	int ret;
 
 	pScrn->capabilities = 0;
+
+	/* PRIME offloading requires acceleration */
+	if (!info->use_glamor)
+		return;
+
 	ret = drmGetCap(pAMDGPUEnt->fd, DRM_CAP_PRIME, &value);
 	if (ret == 0) {
-		AMDGPUInfoPtr info = AMDGPUPTR(pScrn);
-
-		if (value & DRM_PRIME_CAP_EXPORT) {
-			pScrn->capabilities |= RR_Capability_SourceOutput;
-			if (info->use_glamor && info->dri2.available)
-				pScrn->capabilities |= RR_Capability_SinkOffload;
-		}
-		if (value & DRM_PRIME_CAP_IMPORT) {
-			pScrn->capabilities |= RR_Capability_SinkOutput;
-			if (info->use_glamor && info->dri2.available)
-				pScrn->capabilities |= RR_Capability_SourceOffload;
-		}
+		if (value & DRM_PRIME_CAP_EXPORT)
+			pScrn->capabilities |= RR_Capability_SourceOutput | RR_Capability_SinkOffload;
+		if (value & DRM_PRIME_CAP_IMPORT)
+			pScrn->capabilities |= RR_Capability_SinkOutput | RR_Capability_SourceOffload;
 	}
 #endif
 }


More information about the xorg-commit mailing list