[cts.https.html?q=webgpu:shader,validation,shader_io,builtins: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,builtins:missing_vertex_position:*]
  [:use_struct=false;attribute="%40builtin(position)"]

  [:use_struct=false;attribute="%40location(0)"]

  [:use_struct=true;attribute="%40builtin(position)"]

  [:use_struct=true;attribute="%40location(0)"]


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

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

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

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


[cts.https.html?q=webgpu:shader,validation,shader_io,builtins:parse:*]
  implementation-status: backlog
  [:builtin="duplicate"]

  [:builtin="ident_param"]

  [:builtin="invalid_name"]

  [:builtin="missing_lparen"]

  [:builtin="missing_param"]

  [:builtin="missing_parens"]

  [:builtin="missing_rparen"]

  [:builtin="multiple_params"]

  [:builtin="newline_in_attr"]

  [:builtin="no_params"]

  [:builtin="number_param"]

  [:builtin="pos"]

  [:builtin="trailing_comma"]
    expected: FAIL

  [:builtin="whitespace_in_attr"]


[cts.https.html?q=webgpu:shader,validation,shader_io,builtins:placement:*]
  implementation-status: backlog
  [:scope="_undef_";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]
    expected: FAIL

  [:scope="fn-decl";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]

  [:scope="fn-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]

  [:scope="non-ep-param";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]

  [:scope="non-ep-ret";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]

  [:scope="private-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]

  [:scope="storage-var";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]

  [:scope="struct-member";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]
    expected: FAIL

  [:scope="while-stmt";attribute={"private-var":false,"storage-var":false,"struct-member":true,"non-ep-param":false,"non-ep-ret":false,"fn-decl":false,"fn-var":false,"fn-return":false,"while-stmt":false}]


[cts.https.html?q=webgpu:shader,validation,shader_io,builtins:reuse_builtin_name:*]
  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="alias";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="alias";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="function";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="function";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="function-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="function-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="module-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="module-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="struct";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use="struct";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="alias";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="alias";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="function";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="function";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="function-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="function-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="module-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="module-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="struct";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use="struct";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="alias";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="alias";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="function";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="function";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="function-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="function-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="module-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="module-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="struct";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use="struct";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="alias";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="alias";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="function";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="function";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="function-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="function-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="module-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="module-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="struct";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use="struct";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="alias";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="alias";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="function";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="function";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="function-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="function-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="module-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="module-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="struct";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use="struct";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="alias";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="alias";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="function";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="function";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="function-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="function-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="module-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="module-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="struct";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use="struct";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="alias";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="alias";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="function";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="function";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="function-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="function-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="module-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="module-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="struct";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use="struct";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="alias";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="alias";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="function";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="function";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="function-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="function-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="module-var";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="module-var";enable_extension=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="struct";enable_extension=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use="struct";enable_extension=true]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use="alias";enable_extension=false]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use="function";enable_extension=false]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use="function-var";enable_extension=false]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use="module-var";enable_extension=false]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use="struct";enable_extension=false]

  [:name="front_facing";stage="fragment";io="in";type="bool";use="alias";enable_extension=false]

  [:name="front_facing";stage="fragment";io="in";type="bool";use="function";enable_extension=false]

  [:name="front_facing";stage="fragment";io="in";type="bool";use="function-var";enable_extension=false]

  [:name="front_facing";stage="fragment";io="in";type="bool";use="module-var";enable_extension=false]

  [:name="front_facing";stage="fragment";io="in";type="bool";use="struct";enable_extension=false]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="alias";enable_extension=false]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="function";enable_extension=false]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="function-var";enable_extension=false]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="module-var";enable_extension=false]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="struct";enable_extension=false]

  [:name="instance_index";stage="vertex";io="in";type="u32";use="alias";enable_extension=false]

  [:name="instance_index";stage="vertex";io="in";type="u32";use="function";enable_extension=false]

  [:name="instance_index";stage="vertex";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="instance_index";stage="vertex";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="instance_index";stage="vertex";io="in";type="u32";use="struct";enable_extension=false]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="alias";enable_extension=false]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="function";enable_extension=false]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="function-var";enable_extension=false]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="module-var";enable_extension=false]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="struct";enable_extension=false]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use="alias";enable_extension=false]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use="function";enable_extension=false]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use="struct";enable_extension=false]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use="alias";enable_extension=false]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use="function";enable_extension=false]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use="function-var";enable_extension=false]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use="module-var";enable_extension=false]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use="struct";enable_extension=false]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use="alias";enable_extension=false]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use="function";enable_extension=false]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use="function-var";enable_extension=false]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use="module-var";enable_extension=false]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use="struct";enable_extension=false]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use="alias";enable_extension=false]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use="function";enable_extension=false]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use="function-var";enable_extension=false]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use="module-var";enable_extension=false]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use="struct";enable_extension=false]

  [:name="sample_index";stage="fragment";io="in";type="u32";use="alias";enable_extension=false]

  [:name="sample_index";stage="fragment";io="in";type="u32";use="function";enable_extension=false]

  [:name="sample_index";stage="fragment";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="sample_index";stage="fragment";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="sample_index";stage="fragment";io="in";type="u32";use="struct";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use="alias";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use="function";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use="struct";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use="alias";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use="function";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use="function-var";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use="module-var";enable_extension=false]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use="struct";enable_extension=false]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="alias";enable_extension=false]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="alias";enable_extension=true]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="function";enable_extension=false]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="function";enable_extension=true]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="function-var";enable_extension=true]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="module-var";enable_extension=true]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="struct";enable_extension=false]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use="struct";enable_extension=true]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="alias";enable_extension=false]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="alias";enable_extension=true]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="function";enable_extension=false]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="function";enable_extension=true]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="function-var";enable_extension=true]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="module-var";enable_extension=true]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="struct";enable_extension=false]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use="struct";enable_extension=true]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="alias";enable_extension=false]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="alias";enable_extension=true]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="function";enable_extension=false]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="function";enable_extension=true]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="function-var";enable_extension=true]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="module-var";enable_extension=true]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="struct";enable_extension=false]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use="struct";enable_extension=true]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="alias";enable_extension=false]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="alias";enable_extension=true]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="function";enable_extension=false]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="function";enable_extension=true]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="function-var";enable_extension=true]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="module-var";enable_extension=true]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="struct";enable_extension=false]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use="struct";enable_extension=true]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use="alias";enable_extension=false]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use="function";enable_extension=false]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use="function-var";enable_extension=false]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use="module-var";enable_extension=false]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use="struct";enable_extension=false]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="alias";enable_extension=false]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="function";enable_extension=false]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="function-var";enable_extension=false]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="module-var";enable_extension=false]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use="struct";enable_extension=false]


[cts.https.html?q=webgpu:shader,validation,shader_io,builtins:stage_inout:*]
  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false;target_stage="";target_io="in"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false;target_stage="";target_io="out"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true;target_stage="";target_io="in"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true;target_stage="";target_io="out"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false;target_stage="";target_io="in"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false;target_stage="";target_io="out"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false;target_stage="compute";target_io="in"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false;target_stage="compute";target_io="out"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true;target_stage="";target_io="in"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true;target_stage="";target_io="out"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true;target_stage="compute";target_io="in"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true;target_stage="compute";target_io="out"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="";target_io="in"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="";target_io="out"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="compute";target_io="in"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="compute";target_io="out"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="";target_io="in"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="";target_io="out"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="compute";target_io="in"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="compute";target_io="out"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true;target_stage="vertex";target_io="out"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="";target_io="in"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="";target_io="out"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="compute";target_io="in"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="compute";target_io="out"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="fragment";target_io="in"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="fragment";target_io="out"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="vertex";target_io="in"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false;target_stage="vertex";target_io="out"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="";target_io="in"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="";target_io="out"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="compute";target_io="in"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="compute";target_io="out"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="fragment";target_io="in"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="fragment";target_io="out"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="vertex";target_io="in"]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true;target_stage="vertex";target_io="out"]


[cts.https.html?q=webgpu:shader,validation,shader_io,builtins:type:*]
  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,1%3E";use_struct=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,2%3E";use_struct=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,3%3E";use_struct=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,4%3E";use_struct=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,5%3E";use_struct=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,6%3E";use_struct=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,7%3E";use_struct=true]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=false]

  [:name="clip_distances";stage="vertex";io="out";type="array%3Cf32,8%3E";use_struct=true]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=false]

  [:name="frag_depth";stage="fragment";io="out";type="f32";use_struct=true]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=false]

  [:name="front_facing";stage="fragment";io="in";type="bool";use_struct=true]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false]

  [:name="global_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=false]

  [:name="instance_index";stage="vertex";io="in";type="u32";use_struct=true]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false]

  [:name="local_invocation_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=false]

  [:name="local_invocation_index";stage="compute";io="in";type="u32";use_struct=true]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false]

  [:name="num_workgroups";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=false]

  [:name="position";stage="fragment";io="in";type="vec4%3Cf32%3E";use_struct=true]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=false]

  [:name="position";stage="vertex";io="out";type="vec4%3Cf32%3E";use_struct=true]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=false]

  [:name="sample_index";stage="fragment";io="in";type="u32";use_struct=true]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=false]

  [:name="sample_mask";stage="fragment";io="in";type="u32";use_struct=true]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=false]

  [:name="sample_mask";stage="fragment";io="out";type="u32";use_struct=true]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=false]

  [:name="subgroup_invocation_id";stage="compute";io="in";type="u32";use_struct=true]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=false]

  [:name="subgroup_invocation_id";stage="fragment";io="in";type="u32";use_struct=true]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=false]

  [:name="subgroup_size";stage="compute";io="in";type="u32";use_struct=true]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=false]

  [:name="subgroup_size";stage="fragment";io="in";type="u32";use_struct=true]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=false]

  [:name="vertex_index";stage="vertex";io="in";type="u32";use_struct=true]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=false]

  [:name="workgroup_id";stage="compute";io="in";type="vec3%3Cu32%3E";use_struct=true]
