Fix 8-bit storage nearly always using the
UniformAndStorageBuffer8BitAccess capability.
When using the 8-bit storage extension it basically always used the
`UniformAndStorageBuffer8BitAccess` capability, even in cases where it
wasn't required. For instance if we are targeting Vulkan 1.1 (SPIR-V 1.3
or higher), and we are only using 8-bit types in an SSBO, we only need
the `StorageBuffer8BitAccess` capability.
I fixed this by enabling storage buffer use in Vulkan 1.1 / SPIR-V 1.3
or higher, and then changing the logic to match.
I also added some tests that will output different capabilities when run
on Vulkan 1.0 and 1.1, thus they are added twice to the test list (one
for each version).
Fixes #1539
diff --git a/Test/spv.8bitstorage-ssbo.vert b/Test/spv.8bitstorage-ssbo.vert
new file mode 100644
index 0000000..61ba7bf
--- /dev/null
+++ b/Test/spv.8bitstorage-ssbo.vert
@@ -0,0 +1,15 @@
+#version 450
+
+#extension GL_EXT_shader_8bit_storage: require
+
+layout(binding = 0) readonly buffer Vertices
+{
+ uint8_t vertices[];
+};
+
+layout(location = 0) out vec4 color;
+
+void main()
+{
+ color = vec4(int(vertices[gl_VertexIndex]));
+}