try to do kernel decomp

This commit is contained in:
2025-12-29 01:37:19 +01:00
parent 1884daea1f
commit 488b5a7b03
7 changed files with 93 additions and 34 deletions

View File

@@ -11,14 +11,36 @@ 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 outBuffer { uint g_v[]; };
layout(binding = 0) buffer inBuffer {
uint v[];
};
layout(binding = 1) buffer outBuffer {
uint g_v[];
};
// TODO: Shared variables
// 512 Elements but initial reduction is done
const uint bufferSize = 256;
shared uint[bufferSize] localBuffer;
void main() {
// TODO: Kernel implementation
for (uint i = p.size / 2; i < 0; i -= 2) {
localBuffer[i] = v[i] + v[i + 1];
}
for (uint j = bufferSize ; j != 0; j / 2) {
for (uint i = bufferSize / 2; i < 0; i -= 2) {
localBuffer[i] = localBuffer[i] + localBuffer[i + 1];
}
}
localBuffer[0] = localBuffer[0] + localBuffer[1];
for (uint i = 0; i < bufferSize; i ++) {
g_v[i] = localBuffer[i];
}
}

View File

@@ -19,9 +19,5 @@ layout(binding = 0) buffer inoutBufer { uint v[]; };
void main() {
uint gIDx = gl_GlobalInvocationID.x;
if (gIDx + p.offset >= p.size) {
return;
}
v[gIDx] += v[gIDx + p.offset];
}