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.
78 lines
985 B
Plaintext
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();
|
|
}
|
|
|