[PATCH 3/3] Support exa screen color depth 30 on Linux 3.16 and later.
Mario Kleiner
mario.kleiner.de at gmail.com
Mon Dec 18 22:36:45 UTC 2017
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.
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..d888ac0 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..296bc6c 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 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;
+ }
+
+ /* 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;
+ }
+
radeon_drm_queue_init();
info->allowColorTiling2D = FALSE;
--
2.7.4
More information about the amd-gfx
mailing list