[PATCH xf86-video-amdgpu] If glamor is too old for depth 30, fall back to ShadowFB

Michel Dänzer michel at daenzer.net
Wed Feb 14 18:09:47 UTC 2018


From: Michel Dänzer <michel.daenzer at amd.com>

Instead of not starting up at all.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/amdgpu_kms.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index 15adb2938..e1aae9952 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -1083,14 +1083,7 @@ static Bool AMDGPUPreInitVisual(ScrnInfoPtr pScrn)
 	case 15:
 	case 16:
 	case 24:
-		break;
-
 	case 30:
-		if (xorgGetVersion() < XORG_VERSION_NUMERIC(1,19,99,1,0)) {
-			xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-				   "Depth 30 requires Xorg >= 1.19.99.1\n");
-			return FALSE;
-		}
 		break;
 
 	default:
@@ -1173,6 +1166,14 @@ static Bool AMDGPUPreInitAccel_KMS(ScrnInfoPtr pScrn)
 			use_glamor = FALSE;
 #endif
 
+		if (pScrn->depth == 30 && use_glamor &&
+		    xorgGetVersion() < XORG_VERSION_NUMERIC(1,19,99,1,0)) {
+			xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+				   "Depth 30 is not supported by GLAMOR with "
+				   "Xorg < 1.19.99.1\n");
+			goto shadowfb;
+		}
+
 #ifdef DRI2
 		info->dri2.available = ! !xf86LoadSubModule(pScrn, "dri2");
 #endif
@@ -1190,6 +1191,7 @@ static Bool AMDGPUPreInitAccel_KMS(ScrnInfoPtr pScrn)
 				   "ShadowFB\n");
 		}
 	} else {
+shadowfb:
 		xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
 			   "GPU acceleration disabled, using ShadowFB\n");
 	}
-- 
2.16.1



More information about the amd-gfx mailing list