[Freedreno] [PATCH] a2xx: add support for a few 16-bit color rendering formats

Ilia Mirkin imirkin at alum.mit.edu
Fri Aug 25 04:48:22 UTC 2017


The rest should be possible too, just needs some additional
investigation. Passes fbo-*-formats piglit tests.

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
 src/gallium/drivers/freedreno/a2xx/fd2_gmem.c   | 5 +++++
 src/gallium/drivers/freedreno/a2xx/fd2_screen.c | 7 ++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/a2xx/fd2_gmem.c b/src/gallium/drivers/freedreno/a2xx/fd2_gmem.c
index aaba4127e0a..faf4dbccbc9 100644
--- a/src/gallium/drivers/freedreno/a2xx/fd2_gmem.c
+++ b/src/gallium/drivers/freedreno/a2xx/fd2_gmem.c
@@ -50,6 +50,11 @@ static uint32_t fmt2swap(enum pipe_format format)
 	switch (format) {
 	case PIPE_FORMAT_B8G8R8A8_UNORM:
 	case PIPE_FORMAT_B8G8R8X8_UNORM:
+	case PIPE_FORMAT_B5G6R5_UNORM:
+	case PIPE_FORMAT_B5G5R5A1_UNORM:
+	case PIPE_FORMAT_B5G5R5X1_UNORM:
+	case PIPE_FORMAT_B4G4R4A4_UNORM:
+	case PIPE_FORMAT_B4G4R4X4_UNORM:
 	/* TODO probably some more.. */
 		return 1;
 	default:
diff --git a/src/gallium/drivers/freedreno/a2xx/fd2_screen.c b/src/gallium/drivers/freedreno/a2xx/fd2_screen.c
index 714948c1cef..8e176b1341f 100644
--- a/src/gallium/drivers/freedreno/a2xx/fd2_screen.c
+++ b/src/gallium/drivers/freedreno/a2xx/fd2_screen.c
@@ -54,7 +54,12 @@ fd2_screen_is_format_supported(struct pipe_screen *pscreen,
 
 	/* TODO figure out how to render to other formats.. */
 	if ((usage & PIPE_BIND_RENDER_TARGET) &&
-			((format != PIPE_FORMAT_B8G8R8A8_UNORM) &&
+			((format != PIPE_FORMAT_B5G6R5_UNORM) &&
+			 (format != PIPE_FORMAT_B5G5R5A1_UNORM) &&
+			 (format != PIPE_FORMAT_B5G5R5X1_UNORM) &&
+			 (format != PIPE_FORMAT_B4G4R4A4_UNORM) &&
+			 (format != PIPE_FORMAT_B4G4R4X4_UNORM) &&
+			 (format != PIPE_FORMAT_B8G8R8A8_UNORM) &&
 			 (format != PIPE_FORMAT_B8G8R8X8_UNORM) &&
 			 (format != PIPE_FORMAT_R8G8B8A8_UNORM) &&
 			 (format != PIPE_FORMAT_R8G8B8X8_UNORM))) {
-- 
2.13.5



More information about the Freedreno mailing list