[cts.https.html?q=webgpu:shader,validation,shader_io,group_and_binding:binding_attributes:*]
  implementation-status: backlog
  [:stage="compute";has_group=false;has_binding=false;resource="sampler"]

  [:stage="compute";has_group=false;has_binding=false;resource="sampler_comparison"]

  [:stage="compute";has_group=false;has_binding=false;resource="storage"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_1d"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_2d"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_2d_array"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_3d"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_cube"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_cube_array"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_depth_2d"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_depth_2d_array"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_depth_cube"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_depth_cube_array"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_depth_multisampled_2d"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_external"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_multisampled_2d"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_storage_1d"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_storage_2d"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_storage_2d_array"]

  [:stage="compute";has_group=false;has_binding=false;resource="texture_storage_3d"]

  [:stage="compute";has_group=false;has_binding=false;resource="uniform"]

  [:stage="compute";has_group=false;has_binding=true;resource="sampler"]

  [:stage="compute";has_group=false;has_binding=true;resource="sampler_comparison"]

  [:stage="compute";has_group=false;has_binding=true;resource="storage"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_1d"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_2d"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_2d_array"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_3d"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_cube"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_cube_array"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_depth_2d"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_depth_2d_array"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_depth_cube"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_depth_cube_array"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_depth_multisampled_2d"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_external"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_multisampled_2d"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_storage_1d"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_storage_2d"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_storage_2d_array"]

  [:stage="compute";has_group=false;has_binding=true;resource="texture_storage_3d"]

  [:stage="compute";has_group=false;has_binding=true;resource="uniform"]

  [:stage="compute";has_group=true;has_binding=false;resource="sampler"]

  [:stage="compute";has_group=true;has_binding=false;resource="sampler_comparison"]

  [:stage="compute";has_group=true;has_binding=false;resource="storage"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_1d"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_2d"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_2d_array"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_3d"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_cube"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_cube_array"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_depth_2d"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_depth_2d_array"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_depth_cube"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_depth_cube_array"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_depth_multisampled_2d"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_external"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_multisampled_2d"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_storage_1d"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_storage_2d"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_storage_2d_array"]

  [:stage="compute";has_group=true;has_binding=false;resource="texture_storage_3d"]

  [:stage="compute";has_group=true;has_binding=false;resource="uniform"]

  [:stage="compute";has_group=true;has_binding=true;resource="sampler"]

  [:stage="compute";has_group=true;has_binding=true;resource="sampler_comparison"]

  [:stage="compute";has_group=true;has_binding=true;resource="storage"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_1d"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_2d"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_2d_array"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_3d"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_cube"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_cube_array"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_depth_2d"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_depth_2d_array"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_depth_cube"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_depth_cube_array"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_depth_multisampled_2d"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_external"]
    expected: FAIL

  [:stage="compute";has_group=true;has_binding=true;resource="texture_multisampled_2d"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_storage_1d"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_storage_2d"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_storage_2d_array"]

  [:stage="compute";has_group=true;has_binding=true;resource="texture_storage_3d"]

  [:stage="compute";has_group=true;has_binding=true;resource="uniform"]

  [:stage="fragment";has_group=false;has_binding=false;resource="sampler"]

  [:stage="fragment";has_group=false;has_binding=false;resource="sampler_comparison"]

  [:stage="fragment";has_group=false;has_binding=false;resource="storage"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_1d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_2d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_2d_array"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_3d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_cube"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_cube_array"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_depth_2d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_depth_2d_array"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_depth_cube"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_depth_cube_array"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_depth_multisampled_2d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_external"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_multisampled_2d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_storage_1d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_storage_2d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_storage_2d_array"]

  [:stage="fragment";has_group=false;has_binding=false;resource="texture_storage_3d"]

  [:stage="fragment";has_group=false;has_binding=false;resource="uniform"]

  [:stage="fragment";has_group=false;has_binding=true;resource="sampler"]

  [:stage="fragment";has_group=false;has_binding=true;resource="sampler_comparison"]

  [:stage="fragment";has_group=false;has_binding=true;resource="storage"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_1d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_2d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_2d_array"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_3d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_cube"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_cube_array"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_depth_2d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_depth_2d_array"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_depth_cube"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_depth_cube_array"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_depth_multisampled_2d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_external"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_multisampled_2d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_storage_1d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_storage_2d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_storage_2d_array"]

  [:stage="fragment";has_group=false;has_binding=true;resource="texture_storage_3d"]

  [:stage="fragment";has_group=false;has_binding=true;resource="uniform"]

  [:stage="fragment";has_group=true;has_binding=false;resource="sampler"]

  [:stage="fragment";has_group=true;has_binding=false;resource="sampler_comparison"]

  [:stage="fragment";has_group=true;has_binding=false;resource="storage"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_1d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_2d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_2d_array"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_3d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_cube"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_cube_array"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_depth_2d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_depth_2d_array"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_depth_cube"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_depth_cube_array"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_depth_multisampled_2d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_external"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_multisampled_2d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_storage_1d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_storage_2d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_storage_2d_array"]

  [:stage="fragment";has_group=true;has_binding=false;resource="texture_storage_3d"]

  [:stage="fragment";has_group=true;has_binding=false;resource="uniform"]

  [:stage="fragment";has_group=true;has_binding=true;resource="sampler"]

  [:stage="fragment";has_group=true;has_binding=true;resource="sampler_comparison"]

  [:stage="fragment";has_group=true;has_binding=true;resource="storage"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_1d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_2d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_2d_array"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_3d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_cube"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_cube_array"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_depth_2d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_depth_2d_array"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_depth_cube"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_depth_cube_array"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_depth_multisampled_2d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_external"]
    expected: FAIL

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_multisampled_2d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_storage_1d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_storage_2d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_storage_2d_array"]

  [:stage="fragment";has_group=true;has_binding=true;resource="texture_storage_3d"]

  [:stage="fragment";has_group=true;has_binding=true;resource="uniform"]

  [:stage="vertex";has_group=false;has_binding=false;resource="sampler"]

  [:stage="vertex";has_group=false;has_binding=false;resource="sampler_comparison"]

  [:stage="vertex";has_group=false;has_binding=false;resource="storage"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_1d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_2d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_2d_array"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_3d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_cube"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_cube_array"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_depth_2d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_depth_2d_array"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_depth_cube"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_depth_cube_array"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_depth_multisampled_2d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_external"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_multisampled_2d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_storage_1d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_storage_2d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_storage_2d_array"]

  [:stage="vertex";has_group=false;has_binding=false;resource="texture_storage_3d"]

  [:stage="vertex";has_group=false;has_binding=false;resource="uniform"]

  [:stage="vertex";has_group=false;has_binding=true;resource="sampler"]

  [:stage="vertex";has_group=false;has_binding=true;resource="sampler_comparison"]

  [:stage="vertex";has_group=false;has_binding=true;resource="storage"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_1d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_2d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_2d_array"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_3d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_cube"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_cube_array"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_depth_2d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_depth_2d_array"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_depth_cube"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_depth_cube_array"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_depth_multisampled_2d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_external"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_multisampled_2d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_storage_1d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_storage_2d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_storage_2d_array"]

  [:stage="vertex";has_group=false;has_binding=true;resource="texture_storage_3d"]

  [:stage="vertex";has_group=false;has_binding=true;resource="uniform"]

  [:stage="vertex";has_group=true;has_binding=false;resource="sampler"]

  [:stage="vertex";has_group=true;has_binding=false;resource="sampler_comparison"]

  [:stage="vertex";has_group=true;has_binding=false;resource="storage"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_1d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_2d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_2d_array"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_3d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_cube"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_cube_array"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_depth_2d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_depth_2d_array"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_depth_cube"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_depth_cube_array"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_depth_multisampled_2d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_external"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_multisampled_2d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_storage_1d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_storage_2d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_storage_2d_array"]

  [:stage="vertex";has_group=true;has_binding=false;resource="texture_storage_3d"]

  [:stage="vertex";has_group=true;has_binding=false;resource="uniform"]

  [:stage="vertex";has_group=true;has_binding=true;resource="sampler"]

  [:stage="vertex";has_group=true;has_binding=true;resource="sampler_comparison"]

  [:stage="vertex";has_group=true;has_binding=true;resource="storage"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_1d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_2d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_2d_array"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_3d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_cube"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_cube_array"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_depth_2d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_depth_2d_array"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_depth_cube"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_depth_cube_array"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_depth_multisampled_2d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_external"]
    expected: FAIL

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_multisampled_2d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_storage_1d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_storage_2d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_storage_2d_array"]

  [:stage="vertex";has_group=true;has_binding=true;resource="texture_storage_3d"]

  [:stage="vertex";has_group=true;has_binding=true;resource="uniform"]


[cts.https.html?q=webgpu:shader,validation,shader_io,group_and_binding:different_entry_points:*]
  implementation-status: backlog
  [:a_stage="compute";b_stage="compute";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="compute";b_stage="compute";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="compute";b_stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="compute";b_stage="compute";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="compute";b_stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="compute";b_stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="compute";b_stage="compute";a_kind="texture_external";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:a_stage="compute";b_stage="compute";a_kind="texture_external";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:a_stage="compute";b_stage="compute";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="compute";b_stage="compute";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="compute";b_stage="compute";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="compute";b_stage="compute";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="compute";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="compute";b_stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="compute";b_stage="fragment";a_kind="texture_external";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:a_stage="compute";b_stage="fragment";a_kind="texture_external";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:a_stage="compute";b_stage="fragment";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="compute";b_stage="fragment";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="compute";b_stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="compute";b_stage="fragment";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="fragment";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:a_stage="compute";b_stage="vertex";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="vertex";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="vertex";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="vertex";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="compute";b_stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="compute";b_stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="compute";b_stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="compute";b_stage="vertex";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="compute";b_stage="vertex";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="compute";b_stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="compute";b_stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="compute";b_stage="vertex";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="compute";b_stage="vertex";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="fragment";b_stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="fragment";b_stage="compute";a_kind="texture_external";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:a_stage="fragment";b_stage="compute";a_kind="texture_external";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:a_stage="fragment";b_stage="compute";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="fragment";b_stage="compute";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="fragment";b_stage="compute";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="fragment";b_stage="compute";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="compute";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_external";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_external";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="fragment";b_stage="fragment";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="fragment";b_stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="fragment";b_stage="fragment";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="fragment";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="vertex";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="vertex";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="vertex";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="vertex";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="fragment";b_stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="fragment";b_stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="fragment";b_stage="vertex";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="fragment";b_stage="vertex";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="fragment";b_stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="fragment";b_stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="fragment";b_stage="vertex";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="fragment";b_stage="vertex";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="vertex";b_stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="vertex";b_stage="compute";a_kind="texture_external";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:a_stage="vertex";b_stage="compute";a_kind="texture_external";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:a_stage="vertex";b_stage="compute";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="vertex";b_stage="compute";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="vertex";b_stage="compute";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="vertex";b_stage="compute";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="compute";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_external";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_external";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="vertex";b_stage="fragment";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="vertex";b_stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"]

  [:a_stage="vertex";b_stage="fragment";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="fragment";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="vertex";a_kind="storage";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="vertex";a_kind="storage";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="vertex";a_kind="storage";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="vertex";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="transitive"]

  [:a_stage="vertex";b_stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:a_stage="vertex";b_stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:a_stage="vertex";b_stage="vertex";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:a_stage="vertex";b_stage="vertex";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:a_stage="vertex";b_stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="direct"]

  [:a_stage="vertex";b_stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="transitive"]

  [:a_stage="vertex";b_stage="vertex";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:a_stage="vertex";b_stage="vertex";a_kind="uniform";b_kind="uniform";usage="transitive"]


[cts.https.html?q=webgpu:shader,validation,shader_io,group_and_binding:function_scope:*]
  [:]


[cts.https.html?q=webgpu:shader,validation,shader_io,group_and_binding:function_scope_texture:*]
  [:]


[cts.https.html?q=webgpu:shader,validation,shader_io,group_and_binding:private_function_scope:*]
  [:]


[cts.https.html?q=webgpu:shader,validation,shader_io,group_and_binding:private_module_scope:*]
  [:]


[cts.https.html?q=webgpu:shader,validation,shader_io,group_and_binding:single_entry_point:*]
  implementation-status: backlog
  [:stage="compute";a_kind="storage";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="storage";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="storage";b_kind="uniform";usage="direct"]

  [:stage="compute";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="texture_2d";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="texture_2d";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="texture_external";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="texture_external";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="uniform";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="uniform";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:stage="compute";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:stage="compute";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:stage="compute";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:stage="fragment";a_kind="storage";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="storage";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="storage";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="storage";b_kind="uniform";usage="direct"]

  [:stage="fragment";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_2d";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_2d";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_external";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_external";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="uniform";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="direct"]
    expected: FAIL

  [:stage="fragment";a_kind="uniform";b_kind="texture_storage_1d";usage="transitive"]
    expected: FAIL

  [:stage="fragment";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:stage="fragment";a_kind="uniform";b_kind="uniform";usage="transitive"]

  [:stage="vertex";a_kind="storage";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="vertex";a_kind="storage";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="vertex";a_kind="storage";b_kind="uniform";usage="direct"]

  [:stage="vertex";a_kind="storage";b_kind="uniform";usage="transitive"]

  [:stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="vertex";a_kind="texture_2d";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:stage="vertex";a_kind="texture_2d";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="vertex";a_kind="texture_external";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="vertex";a_kind="texture_external";b_kind="uniform";usage="direct"]
    expected: FAIL

  [:stage="vertex";a_kind="texture_external";b_kind="uniform";usage="transitive"]
    expected: FAIL

  [:stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="direct"]
    expected: FAIL

  [:stage="vertex";a_kind="uniform";b_kind="texture_3d";usage="transitive"]
    expected: FAIL

  [:stage="vertex";a_kind="uniform";b_kind="uniform";usage="direct"]

  [:stage="vertex";a_kind="uniform";b_kind="uniform";usage="transitive"]
