// crbug.com/tint/959
// Test that we automatically remap resource numbers into a flat namespace for
// MSL. Use some high binding numbers to also test that the remapped numbers are
// densely packed starting at 0.

[[block]]
struct S {
  a : f32;
};

[[group(0),  binding(0)]] var<storage> b0  : S;
[[group(1),  binding(0)]] var<storage> b1  : S;
[[group(2),  binding(0)]] var<storage> b2  : S;
[[group(3),  binding(0)]] var<storage> b3  : S;
[[group(4),  binding(0)]] var<storage> b4  : S;
[[group(5),  binding(0)]] var<storage> b5  : S;
[[group(6),  binding(0)]] var<storage> b6  : S;
[[group(7),  binding(0)]] var<storage> b7  : S;
[[group(9),  binding(1)]] var<uniform> b8  : S;
[[group(8),  binding(1)]] var<uniform> b9  : S;
[[group(10), binding(1)]] var<uniform> b10 : S;
[[group(11), binding(1)]] var<uniform> b11 : S;
[[group(12), binding(1)]] var<uniform> b12 : S;
[[group(13), binding(1)]] var<uniform> b13 : S;
[[group(14), binding(1)]] var<uniform> b14 : S;
[[group(15), binding(1)]] var<uniform> b15 : S;

[[group(0),  binding(1)]] var t0  : texture_2d<f32>;
[[group(1),  binding(1)]] var t1  : texture_2d<f32>;
[[group(2),  binding(1)]] var t2  : texture_2d<f32>;
[[group(3),  binding(1)]] var t3  : texture_2d<f32>;
[[group(4),  binding(1)]] var t4  : texture_2d<f32>;
[[group(5),  binding(1)]] var t5  : texture_2d<f32>;
[[group(6),  binding(1)]] var t6  : texture_2d<f32>;
[[group(7),  binding(1)]] var t7  : texture_2d<f32>;
[[group(8),  binding(200)]] var t8  : texture_depth_2d;
[[group(9),  binding(200)]] var t9  : texture_depth_2d;
[[group(10), binding(200)]] var t10 : texture_depth_2d;
[[group(11), binding(200)]] var t11 : texture_depth_2d;
[[group(12), binding(200)]] var t12 : texture_depth_2d;
[[group(13), binding(200)]] var t13 : texture_depth_2d;
[[group(14), binding(200)]] var t14 : texture_depth_2d;
[[group(15), binding(200)]] var t15 : texture_depth_2d;

[[group(0),  binding(200)]] var s0 : sampler;
[[group(1),  binding(200)]] var s1 : sampler;
[[group(2),  binding(200)]] var s2 : sampler;
[[group(3),  binding(200)]] var s3 : sampler;
[[group(4),  binding(200)]] var s4 : sampler;
[[group(5),  binding(200)]] var s5 : sampler;
[[group(6),  binding(200)]] var s6 : sampler;
[[group(7),  binding(200)]] var s7 : sampler;
[[group(8),  binding(300)]] var s8 : sampler_comparison;
[[group(9),  binding(300)]] var s9 : sampler_comparison;
[[group(10), binding(300)]] var s10 : sampler_comparison;
[[group(11), binding(300)]] var s11 : sampler_comparison;
[[group(12), binding(300)]] var s12 : sampler_comparison;
[[group(13), binding(300)]] var s13 : sampler_comparison;
[[group(14), binding(300)]] var s14 : sampler_comparison;
[[group(15), binding(300)]] var s15 : sampler_comparison;

[[stage(fragment)]]
fn main() {
  _ = b0;
  _ = b1;
  _ = b2;
  _ = b3;
  _ = b4;
  _ = b5;
  _ = b6;
  _ = b7;
  _ = b8;
  _ = b9;
  _ = b10;
  _ = b11;
  _ = b12;
  _ = b13;
  _ = b14;
  _ = b15;

  _ = t0;
  _ = t1;
  _ = t2;
  _ = t3;
  _ = t4;
  _ = t5;
  _ = t6;
  _ = t7;
  _ = t8;
  _ = t9;
  _ = t10;
  _ = t11;
  _ = t12;
  _ = t13;
  _ = t14;
  _ = t15;

  _ = s0;
  _ = s1;
  _ = s2;
  _ = s3;
  _ = s4;
  _ = s5;
  _ = s6;
  _ = s7;
  _ = s8;
  _ = s9;
  _ = s10;
  _ = s11;
  _ = s12;
  _ = s13;
  _ = s14;
  _ = s15;
}
