| #version 430 core | |
| #extension GL_EXT_split_barrier : enable | |
| float f; | |
| void fooBarrier1() | |
| { | |
| controlBarrierArrive(); | |
| controlBarrierWait(); | |
| } | |
| void fooBarrier2() | |
| { | |
| uint i = 0; | |
| for (i = 0; i < 16; ++i) { | |
| controlBarrierArrive(); | |
| controlBarrierWait(); | |
| } | |
| } | |
| void fooBarrier3() | |
| { | |
| bool cond = f > 0.0f; | |
| if (cond) { | |
| controlBarrierArrive(); | |
| } | |
| if (cond) { | |
| controlBarrierWait(); | |
| } | |
| } | |
| void main() | |
| { | |
| fooBarrier1(); | |
| fooBarrier2(); | |
| fooBarrier3(); | |
| } |