[[block]]
struct Constants {
  level : i32;
};

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

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

[[block]]
struct Result {
  values : [[stride(4)]] array<f32>;
};

[[group(0), binding(3)]] var<storage, read_write> result : Result;

[[stage(compute), workgroup_size(1)]]
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;
  }
}
