struct Constants {
  level : i32;
}

@group(0) @binding(0) var<uniform> constants : Constants;

@group(0) @binding(1) var myTexture : texture_2d_array<f32>;

struct Result {
  values : 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;
  }
}
