Files
gpgpu-two/shaders/A2Task2Naive.comp
2026-01-03 22:55:08 +01:00

32 lines
654 B
Plaintext

#version 450
/* built in:
in uvec3 gl_NumWorkGroups;
in uvec3 gl_WorkGroupID;
in uvec3 gl_LocalInvocationID;
in uvec3 gl_GlobalInvocationID;
in uint gl_LocalInvocationIndex;
*/
layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in;
layout(push_constant) uniform PushStruct {
uint size;
uint offset;
} p;
layout(binding = 0) buffer inBuffer { uint v[]; };
layout(binding = 1) buffer outBufer { uint g_v[]; };
void main() {
uint gid = gl_GlobalInvocationID.x;
if (gid >= p.size) {
return;
}
if (gid < p.offset)
g_v[gid] = v[gid];
else
g_v[gid] = v[gid - p.offset] + v[gid];
}