Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2020-03-04 18:32:52 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2020-03-04 18:42:31 +0300
commitc27e1efbf18cff858db35a3eda5dcdde7ad450d6 (patch)
treee29942a8dd4d5de808c326741da4bfedb66e02c4 /shaders-hlsl
parent01968c448604665593b50c5206a50bf849753464 (diff)
HLSL: Add option to always treat SSBO as UAV, even with readonly.
This can make codegen more predictable since ByteAddressBuffer is SRV and not UAV.
Diffstat (limited to 'shaders-hlsl')
-rw-r--r--shaders-hlsl/comp/access-chains.force-uav.comp24
1 files changed, 24 insertions, 0 deletions
diff --git a/shaders-hlsl/comp/access-chains.force-uav.comp b/shaders-hlsl/comp/access-chains.force-uav.comp
new file mode 100644
index 00000000..639f3cac
--- /dev/null
+++ b/shaders-hlsl/comp/access-chains.force-uav.comp
@@ -0,0 +1,24 @@
+#version 310 es
+layout(local_size_x = 1) in;
+
+// TODO: Read structs, matrices and arrays.
+
+layout(std430, binding = 0) readonly buffer SSBO
+{
+ vec4 a[3][2][4];
+ float b[3][2][4];
+ vec4 unsized[];
+} ro;
+
+layout(std430, binding = 1) writeonly buffer SSBO1
+{
+ vec4 c[3][2][4];
+ float d[3][2][4];
+ vec4 unsized[];
+} wo;
+
+void main()
+{
+ wo.c[2][gl_GlobalInvocationID.x][1] = ro.a[1][gl_GlobalInvocationID.x][2];
+ wo.unsized[gl_GlobalInvocationID.x] = ro.unsized[gl_GlobalInvocationID.x];
+}