ar<storage, read_write> histogram: array<array<atomic<u32>, 4>>;
      @group(0) @binding(1) var ourTexture: texture_2d<f32>;

      const kSRGBLuminanceFactors = vec3f(0.2126, 0.7152, 0.0722);
      fn srgbLuminance(color: vec3f) -> f32 {
        return saturate(dot(color, kSRGBLuminanceFactors));
      }

      @compute @workgroup_size(1, 1, 1)
      fn cs(@builtin(global_invocation_id) global_invocation_id: vec3u) {
        let position = global_invocation_id.xy;
        let numBins = f32(arrayLength(&hi