Files
Pulse/Tests/Shaders/Vulkan-OpenGL/BufferCopy.nzsl
2025-04-06 22:17:03 +02:00

33 lines
496 B
Plaintext

[nzsl_version("1.0")]
module;
struct Input
{
[builtin(global_invocation_indices)] indices: vec3[u32]
}
[layout(std430)]
struct SSBO
{
data: dyn_array[u32]
}
[set(0)]
external
{
[binding(0)] read_ssbo: storage[SSBO, readonly],
}
[set(1)]
external
{
[binding(0)] write_ssbo: storage[SSBO, writeonly],
}
[entry(compute)]
[workgroup(16, 16, 1)]
fn main(input: Input)
{
write_ssbo.data[input.indices.x * input.indices.y] = read_ssbo.data[input.indices.x * input.indices.y];
}