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 at gmail.com> --- man/radeon.man | 3 ++- src/radeon_kms.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/man/radeon.man b/man/radeon.man index f4441c4..889355b 100644 --- a/man/radeon.man +++ b/man/radeon.man @@ -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; diff --git a/src/radeon_kms.c b/src/radeon_kms.c index a9300d4..07a490a 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -1248,6 +1248,7 @@ static Bool RADEONPreInitVisual(ScrnInfoPtr pScrn) case 15: case 16: case 24: + case 30: break; default: @@ -1763,6 +1764,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; -- 2.7.4