SPIRV-Cross/reference/shaders/comp/barriers.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

78 lines
985 B
Plaintext

#version 310 es
layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in;
void barrier_shared()
{
memoryBarrierShared();
}
void full_barrier()
{
memoryBarrier();
}
void image_barrier()
{
memoryBarrierImage();
}
void buffer_barrier()
{
memoryBarrierBuffer();
}
void group_barrier()
{
groupMemoryBarrier();
}
void barrier_shared_exec()
{
barrier();
}
void full_barrier_exec()
{
memoryBarrier();
barrier();
}
void image_barrier_exec()
{
memoryBarrierImage();
barrier();
}
void buffer_barrier_exec()
{
memoryBarrierBuffer();
barrier();
}
void group_barrier_exec()
{
groupMemoryBarrier();
barrier();
}
void exec_barrier()
{
barrier();
}
void main()
{
barrier_shared();
full_barrier();
image_barrier();
buffer_barrier();
group_barrier();
barrier_shared_exec();
full_barrier_exec();
image_barrier_exec();
buffer_barrier_exec();
group_barrier_exec();
exec_barrier();
}