SPIRV-Cross/reference/shaders/comp/shared.comp
Hans-Kristian Arntzen 67b2991451 Don't emit memoryBarrierShared() in workgroup control barriers.
This is implied in both GL and GLES. Emitting memoryBarrierShared() was
based on earlier confusion in the spec which has since been fixed and
clarified.
2019-12-04 15:06:19 +01:00

25 lines
501 B
Plaintext

#version 310 es
layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in;
layout(binding = 0, std430) readonly buffer SSBO
{
float in_data[];
} _22;
layout(binding = 1, std430) writeonly buffer SSBO2
{
float out_data[];
} _44;
shared float sShared[4];
void main()
{
uint ident = gl_GlobalInvocationID.x;
float idata = _22.in_data[ident];
sShared[gl_LocalInvocationIndex] = idata;
barrier();
_44.out_data[ident] = sShared[(4u - gl_LocalInvocationIndex) - 1u];
}