Mesa (master): a2xx: add support for a few 16-bit color rendering formats

Ilia Mirkin imirkin at kemper.freedesktop.org
Sun Oct 15 16:11:14 UTC 2017


Module: Mesa
Branch: master
Commit: 790b5c4a38d2c1233cd58535236155c5ace692d3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=790b5c4a38d2c1233cd58535236155c5ace692d3

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Aug 25 00:47:05 2017 -0400

a2xx: add support for a few 16-bit color rendering formats

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>
Reviewed-by: Wladimir J. van der Laan <laanwj at gmail.com>

---

 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 be3992b749..0905ab6f65 100644
--- a/src/gallium/drivers/freedreno/a2xx/fd2_gmem.c
+++ b/src/gallium/drivers/freedreno/a2xx/fd2_gmem.c
@@ -47,6 +47,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 2fd479483e..c2a60c683f 100644
--- a/src/gallium/drivers/freedreno/a2xx/fd2_screen.c
+++ b/src/gallium/drivers/freedreno/a2xx/fd2_screen.c
@@ -52,7 +52,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))) {




More information about the mesa-commit mailing list