diff options
-rw-r--r-- | src/gallium/drivers/v3d/v3d_screen.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c index 1c72dc4af0d..69aa82484e7 100644 --- a/src/gallium/drivers/v3d/v3d_screen.c +++ b/src/gallium/drivers/v3d/v3d_screen.c @@ -652,6 +652,23 @@ v3d_screen_is_format_supported(struct pipe_screen *pscreen, return false; } + if (usage & PIPE_BIND_SHADER_IMAGE) { + switch (format) { + /* FIXME: maybe we can implement a swizzle-on-writes to add + * support for BGRA-alike formats. + */ + case PIPE_FORMAT_A4B4G4R4_UNORM: + case PIPE_FORMAT_A1B5G5R5_UNORM: + case PIPE_FORMAT_B5G6R5_UNORM: + case PIPE_FORMAT_B8G8R8A8_UNORM: + case PIPE_FORMAT_X8Z24_UNORM: + case PIPE_FORMAT_Z16_UNORM: + return false; + default: + return true; + } + } + return true; } |