xref: /aosp_15_r20/external/OpenCL-CTS/test_conformance/vulkan/shaders/buffer.comp (revision 6467f958c7de8070b317fc65bcb0f6472e388d82)
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}