summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHawking Zhang <Hawking.Zhang@amd.com>2016-07-16 00:09:21 +0800
committerMichel Dänzer <michel@daenzer.net>2018-02-14 17:05:51 +0100
commit6aee5770fb913713bb1b9a1af8f0d0892a66f21a (patch)
treeb573e0b5e2d117c502e02568ca0dd0d0f72434f2
parentec397f7d3bfc89a5d8b8429c96e1b9572f6ee47d (diff)
Add 30bit RGB color format support
Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com> [ Michel Dänzer: * Require Xorg >= 1.19.99.1 for depth 30, otherwise it can't work with glamor * Update manpage, per radeon commit 574bfab4bf1fcd95163a8f33cea2889189429d30 ] Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--man/amdgpu.man2
-rw-r--r--src/amdgpu_bo_helper.c2
-rw-r--r--src/amdgpu_dri2.c1
-rw-r--r--src/amdgpu_kms.c8
4 files changed, 12 insertions, 1 deletions
diff --git a/man/amdgpu.man b/man/amdgpu.man
index 0d9dd93..390f483 100644
--- a/man/amdgpu.man
+++ b/man/amdgpu.man
@@ -18,7 +18,7 @@ following features:
.PD 0
.TP 2
\(bu
-Support for 24-bit pixel depth;
+Support for 24- and 30-bit pixel depths;
.TP
\(bu
RandR support up to version 1.4;
diff --git a/src/amdgpu_bo_helper.c b/src/amdgpu_bo_helper.c
index ba22122..34880ff 100644
--- a/src/amdgpu_bo_helper.c
+++ b/src/amdgpu_bo_helper.c
@@ -42,6 +42,8 @@ amdgpu_get_gbm_format(int depth, int bitsPerPixel)
return GBM_FORMAT_RGB565;
case 32:
return GBM_FORMAT_ARGB8888;
+ case 30:
+ return GBM_FORMAT_XRGB2101010;
case 24:
if (bitsPerPixel == 32)
return GBM_FORMAT_XRGB8888;
diff --git a/src/amdgpu_dri2.c b/src/amdgpu_dri2.c
index 4ffa346..4a0f8bf 100644
--- a/src/amdgpu_dri2.c
+++ b/src/amdgpu_dri2.c
@@ -120,6 +120,7 @@ amdgpu_dri2_create_buffer2(ScreenPtr pScreen,
cpp = 2;
break;
case 24:
+ case 30:
cpp = 4;
break;
default:
diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index 49044f5..7dc9e22 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -1085,6 +1085,14 @@ static Bool AMDGPUPreInitVisual(ScrnInfoPtr pScrn)
case 24:
break;
+ case 30:
+ if (xorgGetVersion() < XORG_VERSION_NUMERIC(1,19,99,1,0)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Depth 30 requires Xorg >= 1.19.99.1\n");
+ return FALSE;
+ }
+ break;
+
default:
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Given depth (%d) is not supported by %s driver\n",