summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/v3d/v3d_screen.c17
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;
}