1#version 450 2#extension GL_ARB_separate_shader_objects : enable 3#extension GL_EXT_shader_explicit_arithmetic_types_int8 : enable 4#extension GL_EXT_shader_explicit_arithmetic_types_int32 : enable 5 6#define MAX_BUFFERS 5 7 8layout(binding = 0) buffer Params 9{ 10 uint32_t numBuffers; 11 uint32_t bufferSize; 12 uint32_t interBufferOffset; 13}; 14layout(binding = 1) buffer Buffer 15{ 16 uint8_t ptr[]; 17} bufferPtrList[MAX_BUFFERS]; 18layout(local_size_x = 512) in; 19void main() { 20 for (uint32_t bufIdx = 0; bufIdx < numBuffers; bufIdx++) { 21 uint32_t ptrIdx = gl_GlobalInvocationID.x; 22 uint32_t limit = bufferSize; 23 while (ptrIdx < limit) { 24 bufferPtrList[bufIdx].ptr[ptrIdx]++; 25 ptrIdx += (gl_NumWorkGroups.x * gl_WorkGroupSize.x); 26 } 27 } 28}