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>
This commit is contained in:
Michel Dänzer
2018-08-03 17:52:28 +02:00
committed by Michel Dänzer
parent 08c4d42f43
commit 7f65a8c9e0
2 changed files with 16 additions and 12 deletions

View File

@@ -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");

View File

@@ -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");
}