
[[block]] struct Constants {
  [[offset(0)]] level : i32;
};

[[group(0), binding(0)]] var<uniform> constants : Constants;
[[group(0), binding(1)]] var myTexture : texture_2d_array<f32>;

[[block]] struct Result {
  [[offset(0)]] values : [[stride(4)]] array<f32>;
};
[[group(0), binding(3)]] var<storage, read_write> result : Result;

[[stage(compute)]]
fn main([[builtin(global_invocation_id)]] GlobalInvocationID : vec3<u32>) {
  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);

  for (var i : u32 = 0u; i < 1u; i = i + 1u) {
    result.values[flatIndex + i] = texel.r;
  }
}
