1e5c31af7Sopenharmony_ci#version 310 es 2e5c31af7Sopenharmony_ci 3e5c31af7Sopenharmony_cilayout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in; 4e5c31af7Sopenharmony_cilayout(binding = 0) buffer InOut 5e5c31af7Sopenharmony_ci{ 6e5c31af7Sopenharmony_ci uint values[]; 7e5c31af7Sopenharmony_ci} sb_inout; 8e5c31af7Sopenharmony_ci 9e5c31af7Sopenharmony_civoid main (void) 10e5c31af7Sopenharmony_ci{ 11e5c31af7Sopenharmony_ci uvec3 size = gl_NumWorkGroups * gl_WorkGroupSize; 12e5c31af7Sopenharmony_ci uint numValuesPerInv = uint(sb_inout.values.length()) / (size.x*size.y*size.z); 13e5c31af7Sopenharmony_ci uint groupNdx = size.x*size.y*gl_GlobalInvocationID.z + size.x*gl_GlobalInvocationID.y + gl_GlobalInvocationID.x; 14e5c31af7Sopenharmony_ci uint offset = numValuesPerInv*groupNdx; 15e5c31af7Sopenharmony_ci 16e5c31af7Sopenharmony_ci for (uint ndx = 0u; ndx < numValuesPerInv; ndx++) 17e5c31af7Sopenharmony_ci sb_inout.values[offset + ndx] = ~sb_inout.values[offset + ndx]; 18e5c31af7Sopenharmony_ci} 19