[cts.https.html?q=webgpu:shader,validation,extension,dual_source_blending:blend_src_same_type:*]
  [:blendSrc0Type="f16";blendSrc1Type="f16"]

  [:blendSrc0Type="f16";blendSrc1Type="f32"]

  [:blendSrc0Type="f16";blendSrc1Type="i32"]

  [:blendSrc0Type="f16";blendSrc1Type="u32"]

  [:blendSrc0Type="f16";blendSrc1Type="vec2f"]

  [:blendSrc0Type="f16";blendSrc1Type="vec2h"]

  [:blendSrc0Type="f16";blendSrc1Type="vec2i"]

  [:blendSrc0Type="f16";blendSrc1Type="vec2u"]

  [:blendSrc0Type="f16";blendSrc1Type="vec3f"]

  [:blendSrc0Type="f16";blendSrc1Type="vec3h"]

  [:blendSrc0Type="f16";blendSrc1Type="vec3i"]

  [:blendSrc0Type="f16";blendSrc1Type="vec3u"]

  [:blendSrc0Type="f16";blendSrc1Type="vec4f"]

  [:blendSrc0Type="f16";blendSrc1Type="vec4h"]

  [:blendSrc0Type="f16";blendSrc1Type="vec4i"]

  [:blendSrc0Type="f16";blendSrc1Type="vec4u"]

  [:blendSrc0Type="f32";blendSrc1Type="f16"]

  [:blendSrc0Type="f32";blendSrc1Type="f32"]

  [:blendSrc0Type="f32";blendSrc1Type="i32"]

  [:blendSrc0Type="f32";blendSrc1Type="u32"]

  [:blendSrc0Type="f32";blendSrc1Type="vec2f"]

  [:blendSrc0Type="f32";blendSrc1Type="vec2h"]

  [:blendSrc0Type="f32";blendSrc1Type="vec2i"]

  [:blendSrc0Type="f32";blendSrc1Type="vec2u"]

  [:blendSrc0Type="f32";blendSrc1Type="vec3f"]

  [:blendSrc0Type="f32";blendSrc1Type="vec3h"]

  [:blendSrc0Type="f32";blendSrc1Type="vec3i"]

  [:blendSrc0Type="f32";blendSrc1Type="vec3u"]

  [:blendSrc0Type="f32";blendSrc1Type="vec4f"]

  [:blendSrc0Type="f32";blendSrc1Type="vec4h"]

  [:blendSrc0Type="f32";blendSrc1Type="vec4i"]

  [:blendSrc0Type="f32";blendSrc1Type="vec4u"]

  [:blendSrc0Type="i32";blendSrc1Type="f16"]

  [:blendSrc0Type="i32";blendSrc1Type="f32"]

  [:blendSrc0Type="i32";blendSrc1Type="i32"]

  [:blendSrc0Type="i32";blendSrc1Type="u32"]

  [:blendSrc0Type="i32";blendSrc1Type="vec2f"]

  [:blendSrc0Type="i32";blendSrc1Type="vec2h"]

  [:blendSrc0Type="i32";blendSrc1Type="vec2i"]

  [:blendSrc0Type="i32";blendSrc1Type="vec2u"]

  [:blendSrc0Type="i32";blendSrc1Type="vec3f"]

  [:blendSrc0Type="i32";blendSrc1Type="vec3h"]

  [:blendSrc0Type="i32";blendSrc1Type="vec3i"]

  [:blendSrc0Type="i32";blendSrc1Type="vec3u"]

  [:blendSrc0Type="i32";blendSrc1Type="vec4f"]

  [:blendSrc0Type="i32";blendSrc1Type="vec4h"]

  [:blendSrc0Type="i32";blendSrc1Type="vec4i"]

  [:blendSrc0Type="i32";blendSrc1Type="vec4u"]

  [:blendSrc0Type="u32";blendSrc1Type="f16"]

  [:blendSrc0Type="u32";blendSrc1Type="f32"]

  [:blendSrc0Type="u32";blendSrc1Type="i32"]

  [:blendSrc0Type="u32";blendSrc1Type="u32"]

  [:blendSrc0Type="u32";blendSrc1Type="vec2f"]

  [:blendSrc0Type="u32";blendSrc1Type="vec2h"]

  [:blendSrc0Type="u32";blendSrc1Type="vec2i"]

  [:blendSrc0Type="u32";blendSrc1Type="vec2u"]

  [:blendSrc0Type="u32";blendSrc1Type="vec3f"]

  [:blendSrc0Type="u32";blendSrc1Type="vec3h"]

  [:blendSrc0Type="u32";blendSrc1Type="vec3i"]

  [:blendSrc0Type="u32";blendSrc1Type="vec3u"]

  [:blendSrc0Type="u32";blendSrc1Type="vec4f"]

  [:blendSrc0Type="u32";blendSrc1Type="vec4h"]

  [:blendSrc0Type="u32";blendSrc1Type="vec4i"]

  [:blendSrc0Type="u32";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec2f";blendSrc1Type="f16"]

  [:blendSrc0Type="vec2f";blendSrc1Type="f32"]

  [:blendSrc0Type="vec2f";blendSrc1Type="i32"]

  [:blendSrc0Type="vec2f";blendSrc1Type="u32"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec2f";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec2h";blendSrc1Type="f16"]

  [:blendSrc0Type="vec2h";blendSrc1Type="f32"]

  [:blendSrc0Type="vec2h";blendSrc1Type="i32"]

  [:blendSrc0Type="vec2h";blendSrc1Type="u32"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec2h";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec2i";blendSrc1Type="f16"]

  [:blendSrc0Type="vec2i";blendSrc1Type="f32"]

  [:blendSrc0Type="vec2i";blendSrc1Type="i32"]

  [:blendSrc0Type="vec2i";blendSrc1Type="u32"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec2i";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec2u";blendSrc1Type="f16"]

  [:blendSrc0Type="vec2u";blendSrc1Type="f32"]

  [:blendSrc0Type="vec2u";blendSrc1Type="i32"]

  [:blendSrc0Type="vec2u";blendSrc1Type="u32"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec2u";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec3f";blendSrc1Type="f16"]

  [:blendSrc0Type="vec3f";blendSrc1Type="f32"]

  [:blendSrc0Type="vec3f";blendSrc1Type="i32"]

  [:blendSrc0Type="vec3f";blendSrc1Type="u32"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec3f";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec3h";blendSrc1Type="f16"]

  [:blendSrc0Type="vec3h";blendSrc1Type="f32"]

  [:blendSrc0Type="vec3h";blendSrc1Type="i32"]

  [:blendSrc0Type="vec3h";blendSrc1Type="u32"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec3h";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec3i";blendSrc1Type="f16"]

  [:blendSrc0Type="vec3i";blendSrc1Type="f32"]

  [:blendSrc0Type="vec3i";blendSrc1Type="i32"]

  [:blendSrc0Type="vec3i";blendSrc1Type="u32"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec3i";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec3u";blendSrc1Type="f16"]

  [:blendSrc0Type="vec3u";blendSrc1Type="f32"]

  [:blendSrc0Type="vec3u";blendSrc1Type="i32"]

  [:blendSrc0Type="vec3u";blendSrc1Type="u32"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec3u";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec4f";blendSrc1Type="f16"]

  [:blendSrc0Type="vec4f";blendSrc1Type="f32"]

  [:blendSrc0Type="vec4f";blendSrc1Type="i32"]

  [:blendSrc0Type="vec4f";blendSrc1Type="u32"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec4f";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec4h";blendSrc1Type="f16"]

  [:blendSrc0Type="vec4h";blendSrc1Type="f32"]

  [:blendSrc0Type="vec4h";blendSrc1Type="i32"]

  [:blendSrc0Type="vec4h";blendSrc1Type="u32"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec4h";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec4i";blendSrc1Type="f16"]

  [:blendSrc0Type="vec4i";blendSrc1Type="f32"]

  [:blendSrc0Type="vec4i";blendSrc1Type="i32"]

  [:blendSrc0Type="vec4i";blendSrc1Type="u32"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec4i";blendSrc1Type="vec4u"]

  [:blendSrc0Type="vec4u";blendSrc1Type="f16"]

  [:blendSrc0Type="vec4u";blendSrc1Type="f32"]

  [:blendSrc0Type="vec4u";blendSrc1Type="i32"]

  [:blendSrc0Type="vec4u";blendSrc1Type="u32"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec2f"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec2h"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec2i"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec2u"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec3f"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec3h"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec3i"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec3u"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec4f"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec4h"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec4i"]

  [:blendSrc0Type="vec4u";blendSrc1Type="vec4u"]


[cts.https.html?q=webgpu:shader,validation,extension,dual_source_blending:blend_src_stage_input_output:*]
  [:attr="fragment_input"]

  [:attr="fragment_output"]

  [:attr="vertex_input"]

  [:attr="vertex_output"]


[cts.https.html?q=webgpu:shader,validation,extension,dual_source_blending:blend_src_syntax_validation:*]
  [:attr="comment"]

  [:attr="duplicate"]

  [:attr="empty_params"]

  [:attr="empty_params_no_blend_src_0"]

  [:attr="extra_comma"]

  [:attr="extra_params"]

  [:attr="f32"]

  [:attr="f32_literal"]

  [:attr="hex"]

  [:attr="i32"]

  [:attr="invalid"]

  [:attr="invalid_const_expr"]

  [:attr="max"]

  [:attr="missing_left_paren"]

  [:attr="missing_right_paren"]

  [:attr="misspelling"]

  [:attr="negative"]

  [:attr="newline"]

  [:attr="no_parens"]

  [:attr="no_parens_no_blend_src_0"]

  [:attr="one"]

  [:attr="override_expr"]

  [:attr="u32"]

  [:attr="valid_const_expr"]

  [:attr="vec"]

  [:attr="zero"]


[cts.https.html?q=webgpu:shader,validation,extension,dual_source_blending:blend_src_usage:*]
  [:attr="const"]

  [:attr="entrypoint_input_non_struct"]

  [:attr="entrypoint_output_non_struct"]

  [:attr="function_declaration"]

  [:attr="let"]

  [:attr="non_entrypoint_function_input_non_struct"]

  [:attr="non_entrypoint_function_output_non_struct"]

  [:attr="override"]

  [:attr="struct_member_blend_src_and_builtin"]

  [:attr="struct_member_duplicate_blend_src_0"]

  [:attr="struct_member_duplicate_blend_src_1"]

  [:attr="struct_member_has_non_zero_location_blend_src_0"]

  [:attr="struct_member_has_non_zero_location_blend_src_1"]

  [:attr="struct_member_has_non_zero_location_no_blend_src"]

  [:attr="struct_member_location_0_blend_src_0_blend_src_1"]

  [:attr="struct_member_no_location_blend_src_0"]

  [:attr="struct_member_no_location_blend_src_1"]

  [:attr="struct_member_no_location_no_blend_src"]

  [:attr="struct_member_non_zero_location_blend_src_0_blend_src_1"]

  [:attr="struct_member_only_blend_src_0"]

  [:attr="struct_member_only_blend_src_1"]

  [:attr="var_function"]

  [:attr="var_private"]


[cts.https.html?q=webgpu:shader,validation,extension,dual_source_blending:use_blend_src_requires_extension_enabled:*]
  [:requireExtension=false;enableExtension=false]

  [:requireExtension=false;enableExtension=true]

  [:requireExtension=true;enableExtension=false]

  [:requireExtension=true;enableExtension=true]
