summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2018-08-03 17:52:28 +0200
committerMichel Dänzer <michel@daenzer.net>2018-08-16 15:56:57 +0200
commit7f65a8c9e03bddf2378aaa928460632ed6b1a688 (patch)
treeaef3181f4ce0535351164e0583b31af30e8d1faa
parent08c4d42f43f80baa4bbc2ff9d0a422202cdc3538 (diff)
glamor: Check glamor module version for depth 30 support
Instead of the Xorg version. This should allow glamor backported from xserver >= 1.20 to work with older Xorg versions. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--src/amdgpu_glamor.c8
-rw-r--r--src/amdgpu_kms.c20
2 files changed, 16 insertions, 12 deletions
diff --git a/src/amdgpu_glamor.c b/src/amdgpu_glamor.c
index ea49f82..13d68fe 100644
--- a/src/amdgpu_glamor.c
+++ b/src/amdgpu_glamor.c
@@ -99,6 +99,14 @@ Bool amdgpu_glamor_pre_init(ScrnInfoPtr scrn)
} else {
AMDGPUEntPtr pAMDGPUEnt = AMDGPUEntPriv(scrn);
+ if (scrn->depth == 30 &&
+ version < MODULE_VERSION_NUMERIC(1, 0, 1)) {
+ xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+ "Depth 30 requires glamor >= 1.0.1 (xserver 1.20),"
+ " can't enable glamor\n");
+ return FALSE;
+ }
+
if (glamor_egl_init(scrn, pAMDGPUEnt->fd)) {
xf86DrvMsg(scrn->scrnIndex, X_INFO,
"glamor detected, initialising EGL layer.\n");
diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index 7b13d77..9807e08 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -1168,14 +1168,6 @@ 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
@@ -1184,16 +1176,20 @@ static Bool AMDGPUPreInitAccel_KMS(ScrnInfoPtr pScrn)
info->gbm = gbm_create_device(pAMDGPUEnt->fd);
if (info->gbm) {
- if (!use_glamor ||
- amdgpu_glamor_pre_init(pScrn))
- return TRUE;
+ if (use_glamor) {
+ if (amdgpu_glamor_pre_init(pScrn))
+ return TRUE;
+
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "amdgpu_glamor_pre_init returned "
+ "FALSE, using ShadowFB\n");
+ }
} else {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"gbm_create_device returned NULL, using "
"ShadowFB\n");
}
} else {
-shadowfb:
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"GPU acceleration disabled, using ShadowFB\n");
}