diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/spirv-cross/shaders/comp/dowhile.comp')
-rw-r--r-- | 3rdparty/bgfx/3rdparty/spirv-cross/shaders/comp/dowhile.comp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/spirv-cross/shaders/comp/dowhile.comp b/3rdparty/bgfx/3rdparty/spirv-cross/shaders/comp/dowhile.comp new file mode 100644 index 00000000000..709db75a172 --- /dev/null +++ b/3rdparty/bgfx/3rdparty/spirv-cross/shaders/comp/dowhile.comp @@ -0,0 +1,31 @@ +#version 310 es +layout(local_size_x = 1) in; + +layout(std430, binding = 0) readonly buffer SSBO +{ + mat4 mvp; + vec4 in_data[]; +}; + +layout(std430, binding = 1) writeonly buffer SSBO2 +{ + vec4 out_data[]; +}; + +int i; + +void main() +{ + uint ident = gl_GlobalInvocationID.x; + + i = 0; + vec4 idat = in_data[ident]; + do + { + idat = mvp * idat; + i++; + } while(i < 16); + + out_data[ident] = idat; +} + |