diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-03-04 18:32:52 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2020-03-04 18:42:31 +0300 |
commit | c27e1efbf18cff858db35a3eda5dcdde7ad450d6 (patch) | |
tree | e29942a8dd4d5de808c326741da4bfedb66e02c4 /shaders-hlsl | |
parent | 01968c448604665593b50c5206a50bf849753464 (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.comp | 24 |
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]; +} |