The rest should be possible too, just needs some additional investigation. Passes fbo-*-formats piglit tests.
Signed-off-by: Ilia Mirkin <[email protected]> --- 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 _______________________________________________ Freedreno mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/freedreno
