Support exa screen color depth 30 on Linux 3.16 and later. (v2)

Linux 3.16's radeon-kms introduced 10 bpc fb support.
Currently, as of X-Server 1.19, this works with exa accel,
but not yet when using glamor acceleration.

v2: Style fixes, check for glamor first, as suggested
    by Michel.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
Mario Kleiner
2018-01-22 03:14:37 +01:00
committed by Michel Dänzer
parent ee7e6c2598
commit 574bfab4bf
2 changed files with 19 additions and 1 deletions

View File

@@ -18,7 +18,8 @@ following features:
.PD 0
.TP 2
\(bu
Full support for 8-, 15-, 16- and 24-bit pixel depths;
Full support for 8-, 15-, 16- and 24-bit pixel depths, and for 30-bit depth on Linux 3.16
and later with EXA acceleration;
.TP
\(bu
RandR 1.2 and RandR 1.3 support;

View File

@@ -1250,6 +1250,7 @@ static Bool RADEONPreInitVisual(ScrnInfoPtr pScrn)
case 15:
case 16:
case 24:
case 30:
break;
default:
@@ -1765,6 +1766,22 @@ Bool RADEONPreInit_KMS(ScrnInfoPtr pScrn, int flags)
if (!RADEONPreInitAccel_KMS(pScrn)) goto fail;
/* Depth 30 not yet supported under glamor. */
if (pScrn->depth == 30 && info->use_glamor) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Given depth (%d) is not supported under GLAMOR accel. Select EXA.\n",
pScrn->depth);
goto fail;
}
/* Depth 30 only supported since Linux 3.16 / kms driver minor version 39 */
if (pScrn->depth == 30 && info->dri2.pKernelDRMVersion->version_minor < 39) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Given depth (%d) is not supported. Kernel too old. Needs Linux 3.16+\n",
pScrn->depth);
goto fail;
}
radeon_drm_queue_init();
info->allowColorTiling2D = FALSE;