diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders/comp/composite-array-initialization.comp')
-rw-r--r-- | 3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders/comp/composite-array-initialization.comp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders/comp/composite-array-initialization.comp b/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders/comp/composite-array-initialization.comp new file mode 100644 index 00000000000..847a1520099 --- /dev/null +++ b/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders/comp/composite-array-initialization.comp @@ -0,0 +1,38 @@ +#version 310 es +layout(local_size_x = 2, local_size_y = 1, local_size_z = 1) in; + +struct Data +{ + float a; + float b; +}; + +#ifndef SPIRV_CROSS_CONSTANT_ID_0 +#define SPIRV_CROSS_CONSTANT_ID_0 4.0 +#endif +const float X = SPIRV_CROSS_CONSTANT_ID_0; + +layout(binding = 0, std430) buffer SSBO +{ + Data outdata[]; +} _53; + +Data data[2]; +Data data2[2]; + +Data combine(Data a, Data b) +{ + return Data(a.a + b.a, a.b + b.b); +} + +void main() +{ + data = Data[](Data(1.0, 2.0), Data(3.0, 4.0)); + data2 = Data[](Data(X, 2.0), Data(3.0, 5.0)); + Data param = data[gl_LocalInvocationID.x]; + Data param_1 = data2[gl_LocalInvocationID.x]; + Data _73 = combine(param, param_1); + _53.outdata[gl_WorkGroupID.x].a = _73.a; + _53.outdata[gl_WorkGroupID.x].b = _73.b; +} + |