2021-06-10 18:49:14 +00:00
|
|
|
struct Constants {
|
|
|
|
level : i32;
|
2022-01-19 18:11:17 +00:00
|
|
|
}
|
2021-06-10 18:49:14 +00:00
|
|
|
|
2022-01-19 22:46:57 +00:00
|
|
|
@group(0) @binding(0) var<uniform> constants : Constants;
|
2021-06-10 18:49:14 +00:00
|
|
|
|
2022-01-19 22:46:57 +00:00
|
|
|
@group(0) @binding(1) var myTexture : texture_2d_array<f32>;
|
2021-06-10 18:49:14 +00:00
|
|
|
|
|
|
|
struct Result {
|
2022-01-20 22:11:07 +00:00
|
|
|
values : array<f32>;
|
2022-01-19 18:11:17 +00:00
|
|
|
}
|
2021-06-10 18:49:14 +00:00
|
|
|
|
2022-01-19 22:46:57 +00:00
|
|
|
@group(0) @binding(3) var<storage, read_write> result : Result;
|
2021-06-10 18:49:14 +00:00
|
|
|
|
2022-01-19 22:46:57 +00:00
|
|
|
@stage(compute) @workgroup_size(1)
|
|
|
|
fn main(@builtin(global_invocation_id) GlobalInvocationID : vec3<u32>) {
|
2021-06-10 18:49:14 +00:00
|
|
|
var flatIndex : u32 = ((((2u * 2u) * GlobalInvocationID.z) + (2u * GlobalInvocationID.y)) + GlobalInvocationID.x);
|
|
|
|
flatIndex = (flatIndex * 1u);
|
|
|
|
var texel : vec4<f32> = textureLoad(myTexture, vec2<i32>(GlobalInvocationID.xy), 0, 0);
|
2021-07-08 21:23:33 +00:00
|
|
|
for(var i : u32 = 0u; (i < 1u); i = (i + 1u)) {
|
|
|
|
result.values[(flatIndex + i)] = texel.r;
|
2021-06-10 18:49:14 +00:00
|
|
|
}
|
|
|
|
}
|