67b2991451
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.
25 lines
501 B
Plaintext
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];
|
|
}
|
|
|