[cts.https.html?q=webgpu:shader,validation,shader_io,locations:duplicates:*]
  [:first="p1";second="p2"]

  [:first="p1";second="rb"]

  [:first="p1";second="s1b"]

  [:first="p1";second="s2b"]

  [:first="ra";second="p2"]

  [:first="ra";second="rb"]

  [:first="ra";second="s1b"]

  [:first="ra";second="s2b"]

  [:first="s1a";second="p2"]

  [:first="s1a";second="rb"]

  [:first="s1a";second="s1b"]

  [:first="s1a";second="s2b"]

  [:first="s2a";second="p2"]

  [:first="s2a";second="rb"]

  [:first="s2a";second="s1b"]

  [:first="s2a";second="s2b"]


[cts.https.html?q=webgpu:shader,validation,shader_io,locations:location_fp16:*]
  [:ext=""]

  [:ext="h"]


[cts.https.html?q=webgpu:shader,validation,shader_io,locations:nesting:*]
  [:target_stage="";target_io="in"]

  [:target_stage="";target_io="out"]

  [:target_stage="fragment";target_io="in"]

  [:target_stage="fragment";target_io="out"]

  [:target_stage="vertex";target_io="in"]

  [:target_stage="vertex";target_io="out"]


[cts.https.html?q=webgpu:shader,validation,shader_io,locations:out_of_order:*]
  [:case="gap_return"]

  [:case="mixed_locations1"]

  [:case="mixed_locations2"]

  [:case="mixed_overlap"]

  [:case="no_zero_params"]

  [:case="non_zero_return"]

  [:case="reverse_overlap"]

  [:case="reverse_params"]

  [:case="reverse_return"]

  [:case="struct"]

  [:case="struct_override"]

  [:case="struct_random"]

  [:case="struct_random_overlap"]

  [:case="with_param_builtin"]

  [:case="with_return_builtin"]


[cts.https.html?q=webgpu:shader,validation,shader_io,locations:stage_inout:*]
  implementation-status: backlog
  [:use_struct=false;target_stage="compute";target_io="in"]
    expected: FAIL

  [:use_struct=false;target_stage="compute";target_io="out"]
    expected: FAIL

  [:use_struct=false;target_stage="fragment";target_io="in"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=false;target_stage="fragment";target_io="out"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=false;target_stage="vertex";target_io="in"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=false;target_stage="vertex";target_io="out"]

  [:use_struct=true;target_stage="compute";target_io="in"]
    expected: FAIL

  [:use_struct=true;target_stage="compute";target_io="out"]
    expected: FAIL

  [:use_struct=true;target_stage="fragment";target_io="in"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;target_stage="fragment";target_io="out"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;target_stage="vertex";target_io="in"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;target_stage="vertex";target_io="out"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]


[cts.https.html?q=webgpu:shader,validation,shader_io,locations:type:*]
  implementation-status: backlog
  expected:
    if os == "win" and debug: [OK, TIMEOUT]
    if os == "linux" and debug: [OK, TIMEOUT]
    if os == "linux" and not debug: TIMEOUT
    if os == "mac": TIMEOUT
  [:use_struct=false;type="MyAlias"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="MyStruct"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="array%3Cbool,%2012%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="array%3Cf32,%2012%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="array%3Ci32,%2012%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="array%3Cu32,%2012%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="atomic%3Ci32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="atomic%3Cu32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="bool"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="f16"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [FAIL, TIMEOUT, NOTRUN]

  [:use_struct=false;type="f32"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="i32"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x2%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x2f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x2h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x3%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x3f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x3h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x4%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x4f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat2x4h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x2%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x2f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x2h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x3%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x3f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x3h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x4%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x4f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat3x4h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x2%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x2f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x2h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x3%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x3f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x3h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x4%3Cf32%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x4f"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="mat4x4h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="sampler"]
    expected:
      if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="sampler_comparison"]
    expected:
      if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "linux" and not debug: [TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_1d%3Ci32%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_2d%3Cf32%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_2d_array%3Ci32%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_3d%3Cf32%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_cube%3Cu32%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_cube_array%3Ci32%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_depth_2d"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_depth_2d_array"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_depth_cube"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_depth_cube_array"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_depth_multisampled_2d"]
    expected:
      if os == "win" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_external"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_multisampled_2d%3Ci32%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_storage_1d%3Crgba8unorm,%20write%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_storage_2d%3Crg32float,%20write%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_storage_2d_array%3Cr32float,%20write%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="texture_storage_3d%3Cr32float,%20write%3E"]
    expected:
      if os == "linux": [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="u32"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec2%3Cbool%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec2%3Cf32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec2%3Ci32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec2%3Cu32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec2f"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec2h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [FAIL, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec2i"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec2u"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec3%3Cbool%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec3%3Cf32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec3%3Ci32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec3%3Cu32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec3f"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec3h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [FAIL, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec3i"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec3u"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec4%3Cbool%3E"]
    expected:
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec4%3Cf32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec4%3Ci32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec4%3Cu32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec4f"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec4h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [FAIL, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec4i"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=false;type="vec4u"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "linux" and debug: [PASS, TIMEOUT, NOTRUN]
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="MyAlias"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="MyStruct"]

  [:use_struct=true;type="array%3Cbool,%2012%3E"]

  [:use_struct=true;type="array%3Cf32,%2012%3E"]

  [:use_struct=true;type="array%3Ci32,%2012%3E"]

  [:use_struct=true;type="array%3Cu32,%2012%3E"]

  [:use_struct=true;type="atomic%3Ci32%3E"]

  [:use_struct=true;type="atomic%3Cu32%3E"]

  [:use_struct=true;type="bool"]

  [:use_struct=true;type="f16"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": FAIL

  [:use_struct=true;type="f32"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="i32"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat2x2%3Cf32%3E"]

  [:use_struct=true;type="mat2x2f"]

  [:use_struct=true;type="mat2x2h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat2x3%3Cf32%3E"]

  [:use_struct=true;type="mat2x3f"]

  [:use_struct=true;type="mat2x3h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat2x4%3Cf32%3E"]

  [:use_struct=true;type="mat2x4f"]

  [:use_struct=true;type="mat2x4h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat3x2%3Cf32%3E"]

  [:use_struct=true;type="mat3x2f"]

  [:use_struct=true;type="mat3x2h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat3x3%3Cf32%3E"]

  [:use_struct=true;type="mat3x3f"]

  [:use_struct=true;type="mat3x3h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat3x4%3Cf32%3E"]

  [:use_struct=true;type="mat3x4f"]

  [:use_struct=true;type="mat3x4h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat4x2%3Cf32%3E"]

  [:use_struct=true;type="mat4x2f"]

  [:use_struct=true;type="mat4x2h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat4x3%3Cf32%3E"]

  [:use_struct=true;type="mat4x3f"]

  [:use_struct=true;type="mat4x3h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="mat4x4%3Cf32%3E"]

  [:use_struct=true;type="mat4x4f"]

  [:use_struct=true;type="mat4x4h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="sampler"]
    expected:
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="sampler_comparison"]
    expected:
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="texture_1d%3Ci32%3E"]

  [:use_struct=true;type="texture_2d%3Cf32%3E"]

  [:use_struct=true;type="texture_2d_array%3Ci32%3E"]

  [:use_struct=true;type="texture_3d%3Cf32%3E"]

  [:use_struct=true;type="texture_cube%3Cu32%3E"]

  [:use_struct=true;type="texture_cube_array%3Ci32%3E"]

  [:use_struct=true;type="texture_depth_2d"]
    expected:
      if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="texture_depth_2d_array"]
    expected:
      if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="texture_depth_cube"]
    expected:
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="texture_depth_cube_array"]
    expected:
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="texture_depth_multisampled_2d"]
    expected:
      if os == "mac": [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="texture_external"]

  [:use_struct=true;type="texture_multisampled_2d%3Ci32%3E"]

  [:use_struct=true;type="texture_storage_1d%3Crgba8unorm,%20write%3E"]

  [:use_struct=true;type="texture_storage_2d%3Crg32float,%20write%3E"]

  [:use_struct=true;type="texture_storage_2d_array%3Cr32float,%20write%3E"]

  [:use_struct=true;type="texture_storage_3d%3Cr32float,%20write%3E"]
    expected:
      if os == "mac" and debug: [PASS, TIMEOUT, NOTRUN]

  [:use_struct=true;type="u32"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec2%3Cbool%3E"]

  [:use_struct=true;type="vec2%3Cf32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec2%3Ci32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec2%3Cu32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec2f"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec2h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": FAIL

  [:use_struct=true;type="vec2i"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec2u"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec3%3Cbool%3E"]

  [:use_struct=true;type="vec3%3Cf32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec3%3Ci32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec3%3Cu32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec3f"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec3h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": FAIL

  [:use_struct=true;type="vec3i"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec3u"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec4%3Cbool%3E"]

  [:use_struct=true;type="vec4%3Cf32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec4%3Ci32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec4%3Cu32%3E"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec4f"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec4h"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]
      if os == "mac": FAIL

  [:use_struct=true;type="vec4i"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]

  [:use_struct=true;type="vec4u"]
    expected:
      if os == "win" and not debug: [PASS, FAIL]


[cts.https.html?q=webgpu:shader,validation,shader_io,locations:validation:*]
  implementation-status: backlog
  [:attr="comment"]

  [:attr="const_expr"]

  [:attr="empty_params"]

  [:attr="extra_comma"]
    expected: FAIL

  [:attr="extra_params"]

  [:attr="f32"]

  [:attr="f32_literal"]

  [:attr="hex"]

  [:attr="i32"]

  [:attr="max"]

  [:attr="missing_left_paren"]

  [:attr="missing_right_paren"]

  [:attr="misspelling"]

  [:attr="negative"]

  [:attr="newline"]

  [:attr="no_parens"]

  [:attr="one"]

  [:attr="override_expr"]

  [:attr="u32"]

  [:attr="vec"]

  [:attr="zero"]
