[compute shader] #version 450 layout(binding = 3) buffer block { vec2 values[]; }; shared bool shared_bool; shared bvec2 shared_next; void main() { // For this bug we just need to use a shared bool shared_bool = true; shared_next[0] = true; values[gl_WorkGroupID.x + gl_WorkGroupID.y * gl_NumWorkGroups.x] = gl_WorkGroupID.xy; } [test] # Set the buffer at binding 3 to be large enough to hold 256x256 vec2s ssbo 3 524288 # Use the compute shader to fill each vec2 with its grid position compute 256 256 1 # Probe a few points in the buffer # Four corners of the grid probe ssbo vec2 3 0 == 0 0 probe ssbo vec2 3 2040 == 255 0 probe ssbo vec2 3 522240 == 0 255 probe ssbo vec2 3 524280 == 255 255 # Center probe ssbo vec2 3 263168 == 128 128