From 790b5c4a38d2c1233cd58535236155c5ace692d3 Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Fri, 25 Aug 2017 00:47:05 -0400 Subject: [PATCH] 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 Reviewed-by: Wladimir J. van der Laan --- 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 be3992b749a..0905ab6f653 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 2fd479483e2..c2a60c683f8 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))) { -- 2.30.2