dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.depth_max_unused_resolve
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max_unused_resolve
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.properties.2_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.4_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.6_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.8_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.subsampled_loads
+dEQP-VK.renderpass2.fragment_density_map.properties.subsampled_coarse_reconstruction
dEQP-VK.ubo.random.descriptor_indexing.0
dEQP-VK.ubo.random.descriptor_indexing.1
dEQP-VK.ubo.random.descriptor_indexing.2
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.depth_max_unused_resolve
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max_unused_resolve
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.properties.2_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.4_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.6_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.8_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.subsampled_loads
+dEQP-VK.renderpass2.fragment_density_map.properties.subsampled_coarse_reconstruction
dEQP-VK.ubo.2_level_array.std140.float.vertex
dEQP-VK.ubo.2_level_array.std140.float.fragment
dEQP-VK.ubo.2_level_array.std140.float.both
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT = 1000332000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT = 1000332001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
enum VkImageViewCreateFlagBits
{
VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
+ VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF,
};
typedef deUint32 VkImageViewCreateFlags;
#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
-#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
+#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 2
#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
+#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
template<> void initFromBlob<VkPhysicalDevicePrivateDataFeaturesEXT>(VkPhysicalDevicePrivateDataFeaturesEXT&, const AllBlobs&) {}
template<> void initFromBlob<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>(VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&, const AllBlobs&) {}
template<> void initFromBlob<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(VkPhysicalDeviceDiagnosticsConfigFeaturesNV&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDeviceFragmentDensityMapFeatures2EXT>(VkPhysicalDeviceFragmentDensityMapFeatures2EXT&, const AllBlobs&) {}
template<> void initFromBlob<VkPhysicalDeviceRayTracingFeaturesKHR>(VkPhysicalDeviceRayTracingFeaturesKHR&, const AllBlobs&) {}
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 61}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 60}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceASTCDecodeFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 59}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 58}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 57}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 56}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 55}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 54}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 53}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 52}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 51}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 50}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 49}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 48}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 47}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 46}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 45}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 44}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 43}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 42}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 41}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 40}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION, 39}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 38}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 37}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 36}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 35}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceLineRasterizationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 34}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 33}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMeshShaderFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 32}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 31}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePerformanceQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 30}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION, 29}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 28}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrivateDataFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 27}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 26}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 25}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 24}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRobustness2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 23}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 22}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 21}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION, 20}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 19}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderClockFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION, 18}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION, 17}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDrawParametersFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 16}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderFloat16Int8Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 15}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 14}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION, 13}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 12}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION, 11}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShadingRateImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 10}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 9}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 8}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 63}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 62}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceASTCDecodeFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 61}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 60}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 59}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 58}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 57}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 56}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 55}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 54}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 53}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 52}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 51}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 50}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 49}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 48}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 47}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 46}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 45}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 44}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 43}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeatures2EXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 42}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 41}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION, 40}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 39}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 38}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 37}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 36}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceLineRasterizationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 35}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 34}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMeshShaderFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 33}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 32}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePerformanceQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 31}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION, 30}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 29}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrivateDataFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 28}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 27}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 26}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 25}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRobustness2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 24}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 23}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 22}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION, 21}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 20}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderClockFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION, 19}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION, 18}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDrawParametersFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 17}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderFloat16Int8Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 16}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 15}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION, 14}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 13}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION, 12}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShadingRateImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 11}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 10}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 9}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION, 8}; }
template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTimelineSemaphoreFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION, 7}; }
template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 6}; }
template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION, 5}; }
{ createFeatureStructWrapper<VkPhysicalDeviceExclusiveScissorFeaturesNV>, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
+ { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapFeatures2EXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceHostQueryResetFeatures>, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceShadingRateImageFeaturesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION },
+ { createFeatureStructWrapper<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceTimelineSemaphoreFeatures>, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceTransformFeedbackFeaturesEXT>, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION },
{ createFeatureStructWrapper<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION },
VkPhysicalDeviceBufferDeviceAddressFeatures deviceBufferDeviceAddressFeatures[count];
VkPhysicalDeviceDescriptorIndexingFeatures deviceDescriptorIndexingFeatures[count];
VkPhysicalDeviceTimelineSemaphoreFeatures deviceTimelineSemaphoreFeatures[count];
+VkPhysicalDeviceFragmentDensityMapFeaturesEXT deviceFragmentDensityMapFeaturesEXT[count];
+VkPhysicalDeviceFragmentDensityMapFeatures2EXT deviceFragmentDensityMapFeatures2EXT[count];
const bool isConditionalRenderingFeaturesEXT = checkExtension(properties, "VK_EXT_conditional_rendering");
const bool isScalarBlockLayoutFeatures = checkExtension(properties, "VK_EXT_scalar_block_layout") || context.contextSupports(vk::ApiVersion(1, 2, 0));
const bool isBufferDeviceAddressFeatures = checkExtension(properties, "VK_KHR_buffer_device_address") || context.contextSupports(vk::ApiVersion(1, 2, 0));
const bool isDescriptorIndexingFeatures = checkExtension(properties, "VK_EXT_descriptor_indexing") || context.contextSupports(vk::ApiVersion(1, 2, 0));
const bool isTimelineSemaphoreFeatures = checkExtension(properties, "VK_KHR_timeline_semaphore") || context.contextSupports(vk::ApiVersion(1, 2, 0));
+const bool isFragmentDensityMapFeaturesEXT = checkExtension(properties, "VK_EXT_fragment_density_map");
+const bool isFragmentDensityMapFeatures2EXT = checkExtension(properties, "VK_EXT_fragment_density_map2");
for (int ndx = 0; ndx < count; ++ndx)
{
deMemset(&deviceBufferDeviceAddressFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
deMemset(&deviceDescriptorIndexingFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
deMemset(&deviceTimelineSemaphoreFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
+ deMemset(&deviceFragmentDensityMapFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
+ deMemset(&deviceFragmentDensityMapFeatures2EXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMapFeatures2EXT));
deviceConditionalRenderingFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
deviceConditionalRenderingFeaturesEXT[ndx].pNext = &deviceScalarBlockLayoutFeatures[ndx];
deviceDescriptorIndexingFeatures[ndx].pNext = &deviceTimelineSemaphoreFeatures[ndx];
deviceTimelineSemaphoreFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
- deviceTimelineSemaphoreFeatures[ndx].pNext = DE_NULL;
+ deviceTimelineSemaphoreFeatures[ndx].pNext = &deviceFragmentDensityMapFeaturesEXT[ndx];
+
+ deviceFragmentDensityMapFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
+ deviceFragmentDensityMapFeaturesEXT[ndx].pNext = &deviceFragmentDensityMapFeatures2EXT[ndx];
+
+ deviceFragmentDensityMapFeatures2EXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT;
+ deviceFragmentDensityMapFeatures2EXT[ndx].pNext = DE_NULL;
deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
log << TestLog::Message << deviceDescriptorIndexingFeatures[0] << TestLog::EndMessage;
if (isTimelineSemaphoreFeatures)
log << TestLog::Message << deviceTimelineSemaphoreFeatures[0] << TestLog::EndMessage;
+if (isFragmentDensityMapFeaturesEXT)
+ log << TestLog::Message << deviceFragmentDensityMapFeaturesEXT[0] << TestLog::EndMessage;
+if (isFragmentDensityMapFeatures2EXT)
+ log << TestLog::Message << deviceFragmentDensityMapFeatures2EXT[0] << TestLog::EndMessage;
if (isConditionalRenderingFeaturesEXT &&
(deviceConditionalRenderingFeaturesEXT[0].conditionalRendering != deviceConditionalRenderingFeaturesEXT[1].conditionalRendering ||
{
TCU_FAIL("Mismatch between VkPhysicalDeviceTimelineSemaphoreFeatures");
}
+if (isFragmentDensityMapFeaturesEXT &&
+ (deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMap != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMap ||
+ deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapDynamic != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapDynamic ||
+ deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapNonSubsampledImages != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapNonSubsampledImages))
+{
+ TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMapFeaturesEXT");
+}
+if (isFragmentDensityMapFeatures2EXT &&
+ (deviceFragmentDensityMapFeatures2EXT[0].fragmentDensityMapDeferred != deviceFragmentDensityMapFeatures2EXT[1].fragmentDensityMapDeferred))
+{
+ TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMapFeatures2EXT");
+}
const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV& getExclusiveScissorFeatures (void) const;
const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& getExtendedDynamicStateFeaturesEXT (void) const;
const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT& getFragmentDensityMapFeaturesEXT (void) const;
+const vk::VkPhysicalDeviceFragmentDensityMapFeatures2EXT& getFragmentDensityMapFeatures2EXT (void) const;
const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV& getFragmentShaderBarycentricFeatures (void) const;
const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& getFragmentShaderInterlockFeaturesEXT (void) const;
const vk::VkPhysicalDeviceHostQueryResetFeatures& getHostQueryResetFeatures (void) const;
const vk::VkPhysicalDeviceShadingRateImageFeaturesNV& getShadingRateImageFeatures (void) const;
const vk::VkPhysicalDeviceSubgroupSizeControlFeaturesEXT& getSubgroupSizeControlFeaturesEXT (void) const;
const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& getTexelBufferAlignmentFeaturesEXT (void) const;
+const vk::VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& getTextureCompressionASTCHDRFeaturesEXT (void) const;
const vk::VkPhysicalDeviceTimelineSemaphoreFeatures& getTimelineSemaphoreFeatures (void) const;
const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT& getTransformFeedbackFeaturesEXT (void) const;
const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures& getUniformBufferStandardLayoutFeatures (void) const;
const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV& Context::getExclusiveScissorFeatures (void) const { return m_device->getExclusiveScissorFeatures(); }
const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& Context::getExtendedDynamicStateFeaturesEXT (void) const { return m_device->getExtendedDynamicStateFeaturesEXT(); }
const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT& Context::getFragmentDensityMapFeaturesEXT (void) const { return m_device->getFragmentDensityMapFeaturesEXT(); }
+const vk::VkPhysicalDeviceFragmentDensityMapFeatures2EXT& Context::getFragmentDensityMapFeatures2EXT (void) const { return m_device->getFragmentDensityMapFeatures2EXT(); }
const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV& Context::getFragmentShaderBarycentricFeatures (void) const { return m_device->getFragmentShaderBarycentricFeatures(); }
const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& Context::getFragmentShaderInterlockFeaturesEXT (void) const { return m_device->getFragmentShaderInterlockFeaturesEXT(); }
const vk::VkPhysicalDeviceHostQueryResetFeatures& Context::getHostQueryResetFeatures (void) const { return m_device->getHostQueryResetFeatures(); }
const vk::VkPhysicalDeviceShadingRateImageFeaturesNV& Context::getShadingRateImageFeatures (void) const { return m_device->getShadingRateImageFeatures(); }
const vk::VkPhysicalDeviceSubgroupSizeControlFeaturesEXT& Context::getSubgroupSizeControlFeaturesEXT (void) const { return m_device->getSubgroupSizeControlFeaturesEXT(); }
const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& Context::getTexelBufferAlignmentFeaturesEXT (void) const { return m_device->getTexelBufferAlignmentFeaturesEXT(); }
+const vk::VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& Context::getTextureCompressionASTCHDRFeaturesEXT (void) const { return m_device->getTextureCompressionASTCHDRFeaturesEXT(); }
const vk::VkPhysicalDeviceTimelineSemaphoreFeatures& Context::getTimelineSemaphoreFeatures (void) const { return m_device->getTimelineSemaphoreFeatures(); }
const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT& Context::getTransformFeedbackFeaturesEXT (void) const { return m_device->getTransformFeedbackFeaturesEXT(); }
const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures& Context::getUniformBufferStandardLayoutFeatures (void) const { return m_device->getUniformBufferStandardLayoutFeatures(); }
const VkPhysicalDeviceExclusiveScissorFeaturesNV& getExclusiveScissorFeatures (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>(); }
const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& getExtendedDynamicStateFeaturesEXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(); }
const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& getFragmentDensityMapFeaturesEXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(); }
+const VkPhysicalDeviceFragmentDensityMapFeatures2EXT& getFragmentDensityMapFeatures2EXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapFeatures2EXT>(); }
const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV& getFragmentShaderBarycentricFeatures (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(); }
const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& getFragmentShaderInterlockFeaturesEXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(); }
const VkPhysicalDeviceHostQueryResetFeatures& getHostQueryResetFeatures (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceHostQueryResetFeatures>(); }
const VkPhysicalDeviceShadingRateImageFeaturesNV& getShadingRateImageFeatures (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShadingRateImageFeaturesNV>(); }
const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT& getSubgroupSizeControlFeaturesEXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>(); }
const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& getTexelBufferAlignmentFeaturesEXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(); }
+const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& getTextureCompressionASTCHDRFeaturesEXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>(); }
const VkPhysicalDeviceTimelineSemaphoreFeatures& getTimelineSemaphoreFeatures (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTimelineSemaphoreFeatures>(); }
const VkPhysicalDeviceTransformFeedbackFeaturesEXT& getTransformFeedbackFeaturesEXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(); }
const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& getUniformBufferStandardLayoutFeatures (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>(); }
#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
#define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
-#define DECL_AMD_SHADER_CORE_EXTENSION_NAME "not_existent_property"
+#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
+#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
#define DECL_SUBGROUP_EXTENSION_NAME "not_existent_property"
#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 37); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 36); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCooperativeMatrixPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 35); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCustomBorderColorPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 34); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDepthStencilResolveProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 33); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDescriptorIndexingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 32); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 31); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDiscardRectanglePropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 30); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDriverProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, DECL_DRIVER_EXTENSION_NAME, 0, 29); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 28); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFloatControlsProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 27); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 26); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 25); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceLineRasterizationPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 24); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance3Properties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION, 23); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryProperties2>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, DECL_2_MEMORY_EXTENSION_NAME, 0, 22); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMeshShaderPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 21); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 20); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 19); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePerformanceQueryPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 18); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePointClippingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, DECL_POINT_CLIPPING_EXTENSION_NAME, 0, 17); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProtectedMemoryProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 16); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePushDescriptorPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 15); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 14); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 13); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRobustness2PropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 12); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 11); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 10); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCorePropertiesAMD>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, DECL_AMD_SHADER_CORE_EXTENSION_NAME, 0, 9); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 39); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 38); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCooperativeMatrixPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 37); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCustomBorderColorPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 36); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDepthStencilResolveProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 35); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDescriptorIndexingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 34); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 33); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDiscardRectanglePropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 32); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDriverProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, DECL_DRIVER_EXTENSION_NAME, 0, 31); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 30); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFloatControlsProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 29); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 28); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapProperties2EXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 27); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 26); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceLineRasterizationPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 25); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance3Properties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION, 24); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryProperties2>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, DECL_2_MEMORY_EXTENSION_NAME, 0, 23); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMeshShaderPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 22); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 21); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 20); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePerformanceQueryPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 19); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePointClippingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, DECL_POINT_CLIPPING_EXTENSION_NAME, 0, 18); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProtectedMemoryProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 17); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePushDescriptorPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 16); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 15); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 14); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRobustness2PropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 13); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 12); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 11); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCorePropertiesAMD>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION, 10); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCoreProperties2AMD>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION, 9); }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShadingRateImagePropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 8); }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubgroupProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, DECL_SUBGROUP_EXTENSION_NAME, 0, 7); }
template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 6); }
{ createPropertyStructWrapper<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceFloatControlsProperties>, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
+ { createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMapProperties2EXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceLineRasterizationPropertiesEXT>, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceMaintenance3Properties>, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceRobustness2PropertiesEXT>, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceSamplerFilterMinmaxProperties>, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceSampleLocationsPropertiesEXT>, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION },
- { createPropertyStructWrapper<VkPhysicalDeviceShaderCorePropertiesAMD>, DECL_AMD_SHADER_CORE_EXTENSION_NAME, 0 },
+ { createPropertyStructWrapper<VkPhysicalDeviceShaderCorePropertiesAMD>, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION },
+ { createPropertyStructWrapper<VkPhysicalDeviceShaderCoreProperties2AMD>, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceShadingRateImagePropertiesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
{ createPropertyStructWrapper<VkPhysicalDeviceSubgroupProperties>, DECL_SUBGROUP_EXTENSION_NAME, 0 },
{ createPropertyStructWrapper<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
const vk::VkPhysicalDeviceExternalMemoryHostPropertiesEXT& getExternalMemoryHostPropertiesEXT (void) const;
const vk::VkPhysicalDeviceFloatControlsProperties& getFloatControlsProperties (void) const;
const vk::VkPhysicalDeviceFragmentDensityMapPropertiesEXT& getFragmentDensityMapPropertiesEXT (void) const;
+const vk::VkPhysicalDeviceFragmentDensityMapProperties2EXT& getFragmentDensityMapProperties2EXT (void) const;
const vk::VkPhysicalDeviceInlineUniformBlockPropertiesEXT& getInlineUniformBlockPropertiesEXT (void) const;
const vk::VkPhysicalDeviceLineRasterizationPropertiesEXT& getLineRasterizationPropertiesEXT (void) const;
const vk::VkPhysicalDeviceMaintenance3Properties& getMaintenance3Properties (void) const;
const vk::VkPhysicalDeviceSamplerFilterMinmaxProperties& getSamplerFilterMinmaxProperties (void) const;
const vk::VkPhysicalDeviceSampleLocationsPropertiesEXT& getSampleLocationsPropertiesEXT (void) const;
const vk::VkPhysicalDeviceShaderCorePropertiesAMD& getShaderCorePropertiesAMD (void) const;
+const vk::VkPhysicalDeviceShaderCoreProperties2AMD& getShaderCoreProperties2AMD (void) const;
const vk::VkPhysicalDeviceShadingRateImagePropertiesNV& getShadingRateImageProperties (void) const;
const vk::VkPhysicalDeviceSubgroupProperties& getSubgroupProperties (void) const;
const vk::VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& getSubgroupSizeControlPropertiesEXT (void) const;
const vk::VkPhysicalDeviceExternalMemoryHostPropertiesEXT& Context::getExternalMemoryHostPropertiesEXT (void) const { return m_device->getExternalMemoryHostPropertiesEXT(); }
const vk::VkPhysicalDeviceFloatControlsProperties& Context::getFloatControlsProperties (void) const { return m_device->getFloatControlsProperties(); }
const vk::VkPhysicalDeviceFragmentDensityMapPropertiesEXT& Context::getFragmentDensityMapPropertiesEXT (void) const { return m_device->getFragmentDensityMapPropertiesEXT(); }
+const vk::VkPhysicalDeviceFragmentDensityMapProperties2EXT& Context::getFragmentDensityMapProperties2EXT (void) const { return m_device->getFragmentDensityMapProperties2EXT(); }
const vk::VkPhysicalDeviceInlineUniformBlockPropertiesEXT& Context::getInlineUniformBlockPropertiesEXT (void) const { return m_device->getInlineUniformBlockPropertiesEXT(); }
const vk::VkPhysicalDeviceLineRasterizationPropertiesEXT& Context::getLineRasterizationPropertiesEXT (void) const { return m_device->getLineRasterizationPropertiesEXT(); }
const vk::VkPhysicalDeviceMaintenance3Properties& Context::getMaintenance3Properties (void) const { return m_device->getMaintenance3Properties(); }
const vk::VkPhysicalDeviceSamplerFilterMinmaxProperties& Context::getSamplerFilterMinmaxProperties (void) const { return m_device->getSamplerFilterMinmaxProperties(); }
const vk::VkPhysicalDeviceSampleLocationsPropertiesEXT& Context::getSampleLocationsPropertiesEXT (void) const { return m_device->getSampleLocationsPropertiesEXT(); }
const vk::VkPhysicalDeviceShaderCorePropertiesAMD& Context::getShaderCorePropertiesAMD (void) const { return m_device->getShaderCorePropertiesAMD(); }
+const vk::VkPhysicalDeviceShaderCoreProperties2AMD& Context::getShaderCoreProperties2AMD (void) const { return m_device->getShaderCoreProperties2AMD(); }
const vk::VkPhysicalDeviceShadingRateImagePropertiesNV& Context::getShadingRateImageProperties (void) const { return m_device->getShadingRateImageProperties(); }
const vk::VkPhysicalDeviceSubgroupProperties& Context::getSubgroupProperties (void) const { return m_device->getSubgroupProperties(); }
const vk::VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& Context::getSubgroupSizeControlPropertiesEXT (void) const { return m_device->getSubgroupSizeControlPropertiesEXT(); }
const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& getExternalMemoryHostPropertiesEXT (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>(); }
const VkPhysicalDeviceFloatControlsProperties& getFloatControlsProperties (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceFloatControlsProperties>(); }
const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& getFragmentDensityMapPropertiesEXT (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>(); }
+const VkPhysicalDeviceFragmentDensityMapProperties2EXT& getFragmentDensityMapProperties2EXT (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceFragmentDensityMapProperties2EXT>(); }
const VkPhysicalDeviceInlineUniformBlockPropertiesEXT& getInlineUniformBlockPropertiesEXT (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>(); }
const VkPhysicalDeviceLineRasterizationPropertiesEXT& getLineRasterizationPropertiesEXT (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceLineRasterizationPropertiesEXT>(); }
const VkPhysicalDeviceMaintenance3Properties& getMaintenance3Properties (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceMaintenance3Properties>(); }
const VkPhysicalDeviceSamplerFilterMinmaxProperties& getSamplerFilterMinmaxProperties (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceSamplerFilterMinmaxProperties>(); }
const VkPhysicalDeviceSampleLocationsPropertiesEXT& getSampleLocationsPropertiesEXT (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceSampleLocationsPropertiesEXT>(); }
const VkPhysicalDeviceShaderCorePropertiesAMD& getShaderCorePropertiesAMD (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceShaderCorePropertiesAMD>(); }
+const VkPhysicalDeviceShaderCoreProperties2AMD& getShaderCoreProperties2AMD (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceShaderCoreProperties2AMD>(); }
const VkPhysicalDeviceShadingRateImagePropertiesNV& getShadingRateImageProperties (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceShadingRateImagePropertiesNV>(); }
const VkPhysicalDeviceSubgroupProperties& getSubgroupProperties (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceSubgroupProperties>(); }
const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& getSubgroupSizeControlPropertiesEXT (void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT>(); }
{
return;
}
+ if (extName == "VK_EXT_fragment_density_map2")
+ {
+ return;
+ }
if (extName == "VK_KHR_android_surface")
{
functions.push_back("vkCreateAndroidSurfaceKHR");
{
return;
}
+ if (extName == "VK_EXT_fragment_density_map2")
+ {
+ return;
+ }
if (extName == "VK_KHR_android_surface")
{
return;
return VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
}
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapFeatures2EXT> (void)
+{
+ return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapProperties2EXT> (void)
+{
+ return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT;
+}
+
template<> VkStructureType getStructureType<VkAndroidSurfaceCreateInfoKHR> (void)
{
return VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT& value);
std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value);
std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value);
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeatures2EXT& value);
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapProperties2EXT& value);
std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value);
std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value);
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT";
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT";
+ case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT";
case VK_STRUCTURE_TYPE_MAX_ENUM: return "VK_STRUCTURE_TYPE_MAX_ENUM";
default: return DE_NULL;
}
{
static const tcu::Format::BitDesc s_desc[] =
{
- tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT, "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
- tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM, "VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
+ tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT, "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
+ tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
+ tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM, "VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
};
return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
}
return s;
}
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeatures2EXT& value)
+{
+ s << "VkPhysicalDeviceFragmentDensityMapFeatures2EXT = {\n";
+ s << "\tsType = " << value.sType << '\n';
+ s << "\tpNext = " << value.pNext << '\n';
+ s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
+ s << '}';
+ return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapProperties2EXT& value)
+{
+ s << "VkPhysicalDeviceFragmentDensityMapProperties2EXT = {\n";
+ s << "\tsType = " << value.sType << '\n';
+ s << "\tpNext = " << value.pNext << '\n';
+ s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
+ s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
+ s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
+ s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
+ s << '}';
+ return s;
+}
+
std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
{
s << "VkAndroidSurfaceCreateInfoKHR = {\n";
VkDeviceDiagnosticsConfigFlagsNV flags;
};
+struct VkPhysicalDeviceFragmentDensityMapFeatures2EXT
+{
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 fragmentDensityMapDeferred;
+};
+
+struct VkPhysicalDeviceFragmentDensityMapProperties2EXT
+{
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 subsampledLoads;
+ VkBool32 subsampledCoarseReconstructionEarlyAccess;
+ deUint32 maxSubsampledArrayLayers;
+ deUint32 maxDescriptorSetSubsampledSamplers;
+};
+
struct VkAndroidSurfaceCreateInfoKHR
{
VkStructureType sType;
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT = 1000332000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT = 1000332001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
typedef enum VkImageViewCreateFlagBits {
VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
+ VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkImageViewCreateFlagBits;
typedef VkFlags VkImageViewCreateFlags;
#define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2
#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
+
+
+#define VK_EXT_fragment_density_map2 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
+typedef struct VkPhysicalDeviceFragmentDensityMapFeatures2EXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 fragmentDensityMapDeferred;
+} VkPhysicalDeviceFragmentDensityMapFeatures2EXT;
+
+typedef struct VkPhysicalDeviceFragmentDensityMapProperties2EXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 subsampledLoads;
+ VkBool32 subsampledCoarseReconstructionEarlyAccess;
+ deUint32 maxSubsampledArrayLayers;
+ deUint32 maxDescriptorSetSubsampledSamplers;
+} VkPhysicalDeviceFragmentDensityMapProperties2EXT;
+
+
#ifdef __cplusplus
}
#endif
#include "vkCmdUtil.hpp"
#include "vkRefUtil.hpp"
#include "vkObjUtil.hpp"
+#include "vkBarrierUtil.hpp"
#include "vkBuilderUtil.hpp"
+#include "tcuStringTemplate.hpp"
+#include "tcuTextureUtil.hpp"
#include "tcuTestLog.hpp"
#include <sstream>
#include <vector>
// - render_copy tests check if it's possible to copy results using input attachment descriptor ( this simulates deferred rendering behaviour )
// - non_divisible_density_size tests check if subsampled images work when its dimension is not divisible by minFragmentDensityTexelSize
// - N_samples tests check if multisampling works with VK_EXT_fragment_density_map extension
-// - static_* tests use density map loaded from CPU.
+// - static_* tests use density map loaded from CPU during vkCmdBeginRenderPass.
// - dynamic_* tests use density map rendered on a GPU in a separate render pass
+// - deffered_* tests use density map loaded from CPU during VkEndCommandBuffer.
// - *_nonsubsampled tests check if it's possible to use nonsubsampled images instead of subsampled ones
-// There are 3 render passes performed during the test:
+// There are 3 render passes performed during most of the tests:
// - render pass that produces density map ( this rp is skipped when density map is static )
// - render pass that produces subsampled image using density map and eventually copies results to different image ( render_copy )
// - render pass that copies subsampled image to traditional image using sampler with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT flag.
// ( because subsampled images cannot be retrieved to CPU in any other way ).
+// There are few tests that use additional subpass that resamples subsampled image using diferent density map.
+
+// Code of FragmentDensityMapTestInstance is also used to test subsampledLoads, subsampledCoarseReconstructionEarlyAccess,
+// maxDescriptorSetSubsampledSamplers properties.
+
+// set value of DRY_RUN_WITHOUT_FDM_EXTENSION to 1 for dummy run hat checks the correctness of the code without using VK_EXT_fragment_density_map extension
+#define DRY_RUN_WITHOUT_FDM_EXTENSION 0
namespace vkt
{
namespace
{
-// set value of DRY_RUN_WITHOUT_FDM_EXTENSION to 1 if you want to check the correctness of the code without using VK_EXT_fragment_density_map extension
-#define DRY_RUN_WITHOUT_FDM_EXTENSION 0
-
struct TestParams
{
- TestParams(bool dynamicDensity, bool nonSubsampled, bool multiview, bool copy, float renderSizeMultiplier, VkSampleCountFlagBits samples, const tcu::UVec2& area )
- : dynamicDensityMap{ dynamicDensity }, nonSubsampledImages{ nonSubsampled }, multiView{ multiview }, makeCopy{ copy }, densityMapSize{16,16}, colorSamples{ samples }, fragmentArea{ area }, densityMapFormat{ VK_FORMAT_R8G8_UNORM }
- {
- renderSize = tcu::UVec2(deFloorFloatToInt32(renderSizeMultiplier * static_cast<float>(densityMapSize.x())), deFloorFloatToInt32(renderSizeMultiplier * static_cast<float>(densityMapSize.y())));
- }
bool dynamicDensityMap;
+ bool deferredDensityMap;
bool nonSubsampledImages;
- bool multiView;
+ bool subsampledLoads;
+ bool coarseReconstruction;
+ deUint32 samplersCount;
+ deUint32 viewCount;
bool makeCopy;
- tcu::UVec2 densityMapSize;
- tcu::UVec2 renderSize;
+ float renderMultiplier;
VkSampleCountFlagBits colorSamples;
tcu::UVec2 fragmentArea;
+ tcu::UVec2 densityMapSize;
VkFormat densityMapFormat;
};
tcu::Vec4 color;
};
-std::vector<Vertex4RGBA> createFullscreenQuadRG(void)
+std::vector<Vertex4RGBA> createFullscreenMesh(deUint32 viewCount, tcu::Vec2 redGradient, tcu::Vec2 greenGradient)
{
- const Vertex4RGBA lowerLeftVertex = { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f) };
- const Vertex4RGBA upperLeftVertex = { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
- const Vertex4RGBA lowerRightVertex = { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f) };
- const Vertex4RGBA upperRightVertex = { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f) };
+ DE_ASSERT(viewCount > 0);
- return
- {
- lowerLeftVertex, lowerRightVertex, upperLeftVertex,
- upperLeftVertex, lowerRightVertex, upperRightVertex
- };
-}
-
-std::vector<Vertex4RGBA> createFullscreenQuadDensity(float densityX, float densityY)
-{
- const Vertex4RGBA lowerLeftVertex = { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
- const Vertex4RGBA upperLeftVertex = { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f), tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
- const Vertex4RGBA lowerRightVertex = { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
- const Vertex4RGBA upperRightVertex = { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f), tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
+ const auto& r = redGradient;
+ const auto& g = greenGradient;
+ const float step = 2.0f / static_cast<float>(viewCount);
+ float xStart = -1.0f;
- return
+ std::vector<Vertex4RGBA> resultMesh;
+ for (deUint32 viewIndex = 0; viewIndex < viewCount ; ++viewIndex)
{
- lowerLeftVertex, lowerRightVertex, upperLeftVertex,
- upperLeftVertex, lowerRightVertex, upperRightVertex
- };
-};
+ const float fIndex = static_cast<float>(viewIndex);
+ const deUint32 nextIndex = viewIndex + 1;
+ const float xEnd = (nextIndex == viewCount) ? 1.0f : (-1.0f + step * static_cast<float>(nextIndex));
-std::vector<Vertex4RGBA> createFullscreenMeshOutput(bool isMultiview)
-{
- float midX = isMultiview ? 0.0f : 1.0f;
-
- const Vertex4RGBA lowerLeftVertex0 = { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
- const Vertex4RGBA upperLeftVertex0 = { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
- const Vertex4RGBA lowerRightVertex0 = { tcu::Vec4(midX, 1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
- const Vertex4RGBA upperRightVertex0 = { tcu::Vec4(midX, -1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-
- const Vertex4RGBA lowerLeftVertex1 = { tcu::Vec4(midX, 1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 1.0f, 1.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
- const Vertex4RGBA upperLeftVertex1 = { tcu::Vec4(midX, -1.0f, 0.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 1.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
- const Vertex4RGBA lowerRightVertex1 = { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 1.0f, 1.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
- const Vertex4RGBA upperRightVertex1 = { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 0.0f, 1.0f, 1.0f), tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
+ // quad vertex position uv color
+ const Vertex4RGBA lowerLeftVertex = { { xStart, 1.0f, 0.0f, 1.0f }, { 0.0f, 1.0f, fIndex, 1.0f }, { r.x(), g.y(), 0.0f, 1.0f } };
+ const Vertex4RGBA upperLeftVertex = { { xStart, -1.0f, 0.0f, 1.0f }, { 0.0f, 0.0f, fIndex, 1.0f }, { r.x(), g.x(), 0.0f, 1.0f } };
+ const Vertex4RGBA lowerRightVertex = { { xEnd, 1.0f, 0.0f, 1.0f }, { 1.0f, 1.0f, fIndex, 1.0f }, { r.y(), g.y(), 0.0f, 1.0f } };
+ const Vertex4RGBA upperRightVertex = { { xEnd, -1.0f, 0.0f, 1.0f }, { 1.0f, 0.0f, fIndex, 1.0f }, { r.y(), g.x(), 0.0f, 1.0f } };
- if(isMultiview)
- return
+ const std::vector<Vertex4RGBA> viewData
{
- lowerLeftVertex0, lowerRightVertex0, upperLeftVertex0,
- upperLeftVertex0, lowerRightVertex0, upperRightVertex0,
- lowerLeftVertex1, lowerRightVertex1, upperLeftVertex1,
- upperLeftVertex1, lowerRightVertex1, upperRightVertex1
+ lowerLeftVertex, lowerRightVertex, upperLeftVertex,
+ upperLeftVertex, lowerRightVertex, upperRightVertex
};
- return
- {
- lowerLeftVertex0, lowerRightVertex0, upperLeftVertex0,
- upperLeftVertex0, lowerRightVertex0, upperRightVertex0
- };
+
+ resultMesh.insert(resultMesh.end(), viewData.begin(), viewData.end());
+ xStart = xEnd;
+ }
+
+ return resultMesh;
}
template <typename T>
imageView = createImageView(vk, vkDevice, &imageViewCreateInfo);
}
-template<typename AttachmentDesc, typename AttachmentRef, typename SubpassDesc, typename SubpassDep, typename RenderPassCreateInfo>
Move<VkRenderPass> createRenderPassProduceDynamicDensityMap(const DeviceInterface& vk,
VkDevice vkDevice,
+ deUint32 viewMask,
const TestParams& testParams)
{
- VkImageLayout densityPassFinalLayout = testParams.dynamicDensityMap ? VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT : VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
- std::vector<AttachmentDesc> attachmentDescriptions =
+ DE_ASSERT(testParams.dynamicDensityMap);
+
+ typedef AttachmentDescription2 AttachmentDesc;
+ typedef AttachmentReference2 AttachmentRef;
+ typedef SubpassDescription2 SubpassDesc;
+ typedef SubpassDependency2 SubpassDep;
+ typedef RenderPassCreateInfo2 RenderPassCreateInfo;
+
+ std::vector<AttachmentDesc> attachmentDescriptions
{
{
DE_NULL, // const void* pNext
VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout
- densityPassFinalLayout // VkImageLayout finalLayout
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout
+#else
+ VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT // VkImageLayout finalLayout
+#endif
}
};
{ DE_NULL, 0u, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
};
- std::vector<SubpassDesc> subpassDescriptions
+ std::vector<SubpassDesc> subpassDescriptions
{
{
DE_NULL,
(VkSubpassDescriptionFlags)0, // VkSubpassDescriptionFlags flags
VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint
- testParams.multiView ? 0x3u : 0x0u, // deUint32 viewMask
+ viewMask, // deUint32 viewMask
0u, // deUint32 inputAttachmentCount
DE_NULL, // const VkAttachmentReference* pInputAttachments
static_cast<deUint32>(colorAttachmentRefs.size()), // deUint32 colorAttachmentCount
}
};
- std::vector<SubpassDep> subpassDependencies;
- if ( testParams.dynamicDensityMap )
+ std::vector<SubpassDep> subpassDependencies
{
- subpassDependencies.emplace_back(
- SubpassDep(
- DE_NULL, // const void* pNext
- 0u, // uint32_t srcSubpass
- VK_SUBPASS_EXTERNAL, // uint32_t dstSubpass
- VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags srcStageMask
- VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT, // VkPipelineStageFlags dstStageMask
- VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask
- VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, // VkAccessFlags dstAccessMask
- VK_DEPENDENCY_BY_REGION_BIT, // VkDependencyFlags dependencyFlags
- 0u // deInt32 viewOffset
- )
- );
+ {
+ DE_NULL, // const void* pNext
+ 0u, // uint32_t srcSubpass
+ VK_SUBPASS_EXTERNAL, // uint32_t dstSubpass
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags srcStageMask
+ VK_PIPELINE_STAGE_TRANSFER_BIT, // VkPipelineStageFlags dstStageMask
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, // VkAccessFlags dstAccessMask
+#else
+ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags srcStageMask
+ VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT, // VkPipelineStageFlags dstStageMask
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask
+ VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, // VkAccessFlags dstAccessMask
+#endif
+ VK_DEPENDENCY_BY_REGION_BIT, // VkDependencyFlags dependencyFlags
+ 0u // deInt32 viewOffset
+ }
};
vk::VkRenderPassMultiviewCreateInfo renderPassMultiviewCreateInfo;
- void* renderPassInfoPNext = DE_NULL;
- std::vector<deUint32> viewMasks(subpassDescriptions.size(), 0x3u);
+ void* renderPassInfoPNext = DE_NULL;
+ std::vector<deUint32> viewMasks(subpassDescriptions.size(), viewMask);
- if (testParams.multiView)
+ if (testParams.viewCount > 1)
{
-
- renderPassMultiviewCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
- renderPassMultiviewCreateInfo.pNext = renderPassInfoPNext;
- renderPassMultiviewCreateInfo.subpassCount = static_cast<deUint32>(viewMasks.size());
- renderPassMultiviewCreateInfo.pViewMasks = viewMasks.data();
- renderPassMultiviewCreateInfo.dependencyCount = 0;
- renderPassMultiviewCreateInfo.pViewOffsets = DE_NULL;
- renderPassMultiviewCreateInfo.correlationMaskCount = 0U;
- renderPassMultiviewCreateInfo.pCorrelationMasks = DE_NULL;
- renderPassInfoPNext = (void*)&renderPassMultiviewCreateInfo;
+ renderPassMultiviewCreateInfo =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
+ renderPassInfoPNext,
+ static_cast<deUint32>(viewMasks.size()),
+ viewMasks.data(),
+ 0,
+ DE_NULL,
+ 0U,
+ DE_NULL
+ };
+ renderPassInfoPNext = (void*)&renderPassMultiviewCreateInfo;
}
- const RenderPassCreateInfo renderPassInfo(
+ const RenderPassCreateInfo renderPassInfo(
renderPassInfoPNext, // const void* pNext
(VkRenderPassCreateFlags)0, // VkRenderPassCreateFlags flags
static_cast<deUint32>(attachmentDescriptions.size()), // deUint32 attachmentCount
return renderPassInfo.createRenderPass(vk, vkDevice);
}
-template<typename AttachmentDesc, typename AttachmentRef, typename SubpassDesc, typename SubpassDep, typename RenderPassCreateInfo>
-Move<VkRenderPass> createRenderPassProduceSubsampledImage(const DeviceInterface& vk,
- VkDevice vkDevice,
- const TestParams& testParams)
+Move<VkRenderPass> createRenderPassProduceSubsampledImage(const DeviceInterface& vk,
+ VkDevice vkDevice,
+ deUint32 viewMask,
+ bool makeCopySubpass,
+ bool resampleSubsampled,
+ const TestParams& testParams)
{
+ typedef AttachmentDescription2 AttachmentDesc;
+ typedef AttachmentReference2 AttachmentRef;
+ typedef SubpassDescription2 SubpassDesc;
+ typedef SubpassDependency2 SubpassDep;
+ typedef RenderPassCreateInfo2 RenderPassCreateInfo;
+
+ const void* constNullPtr = DE_NULL;
+ deUint32 multisampleAttachmentIndex = 0;
+ deUint32 copyAttachmentIndex = 0;
+ deUint32 densityMapAttachmentIndex = 0;
+
// add color image
- std::vector<AttachmentDesc> attachmentDescriptions
+ VkAttachmentLoadOp loadOp = resampleSubsampled ? VK_ATTACHMENT_LOAD_OP_LOAD : VK_ATTACHMENT_LOAD_OP_CLEAR;
+ std::vector<AttachmentDesc> attachmentDescriptions
{
// Output color attachment
{
- DE_NULL, // const void* pNext
- (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
- VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format
- testParams.colorSamples, // VkSampleCountFlagBits samples
- VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp
- VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp
- VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
- VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
- VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout
- VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout finalLayout
+ DE_NULL, // const void* pNext
+ (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
+ VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format
+ testParams.colorSamples, // VkSampleCountFlagBits samples
+ loadOp, // VkAttachmentLoadOp loadOp
+ VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
+ VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout
+ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout finalLayout
}
};
- deUint32 multisampleAttachmentIndex = 0;
- deUint32 copyAttachmentIndex = 0;
- deUint32 densityMapAttachmentIndex = 0;
// add resolve image when we use more than one sample per fragment
if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
{
multisampleAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
attachmentDescriptions.emplace_back(
- AttachmentDesc(
- DE_NULL, // const void* pNext
- (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
- VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format
- VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples
- VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp
- VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp
- VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
- VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
- VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout
- VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout finalLayout
- )
+ constNullPtr, // const void* pNext
+ (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
+ VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format
+ VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples
+ VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp
+ VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
+ VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout
+ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout finalLayout
);
}
// add color image copy ( when render_copy is used )
- if (testParams.makeCopy)
+ if (makeCopySubpass)
{
copyAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
attachmentDescriptions.emplace_back(
- AttachmentDesc(
- DE_NULL, // const void* pNext
- (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
- VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format
- testParams.colorSamples, // VkSampleCountFlagBits samples
- VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp
- VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp
- VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
- VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
- VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout
- VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout finalLayout
- )
+ constNullPtr, // const void* pNext
+ (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
+ VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format
+ testParams.colorSamples, // VkSampleCountFlagBits samples
+ VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp
+ VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
+ VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout
+ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout finalLayout
);
}
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
// add density map
- {
- densityMapAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
- attachmentDescriptions.emplace_back(
- AttachmentDesc(
- DE_NULL, // const void* pNext
- (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
- testParams.densityMapFormat, // VkFormat format
- VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples
- VK_ATTACHMENT_LOAD_OP_LOAD, // VkAttachmentLoadOp loadOp
- VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp storeOp
- VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
- VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
- VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, // VkImageLayout initialLayout
- VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT // VkImageLayout finalLayout
- )
- );
- }
-#endif
+ densityMapAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
+ attachmentDescriptions.emplace_back(
+ constNullPtr, // const void* pNext
+ (VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
+ testParams.densityMapFormat, // VkFormat format
+ VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples
+ VK_ATTACHMENT_LOAD_OP_LOAD, // VkAttachmentLoadOp loadOp
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp storeOp
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
+ VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, // VkImageLayout initialLayout
+ VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT // VkImageLayout finalLayout
+ );
std::vector<AttachmentRef> colorAttachmentRefs0
{
{ DE_NULL, 0u, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
};
- std::vector<AttachmentRef> resolveAttachmentRefs0;
-
- // for multisampled scenario without copying results - we need to add resolve attachment
- if(testParams.colorSamples!= VK_SAMPLE_COUNT_1_BIT && !testParams.makeCopy)
+ // for multisampled scenario we need to add resolve attachment
+ // (for makeCopy scenario it is used in second subpass)
+ AttachmentRef* pResolveAttachments = DE_NULL;
+ AttachmentRef resolveAttachmentRef
{
- resolveAttachmentRefs0.push_back( { DE_NULL, multisampleAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT } );
+ DE_NULL,
+ multisampleAttachmentIndex,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ VK_IMAGE_ASPECT_COLOR_BIT
};
+ if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+ pResolveAttachments = &resolveAttachmentRef;
std::vector<SubpassDesc> subpassDescriptions
{
{
DE_NULL,
- (VkSubpassDescriptionFlags)0, // VkSubpassDescriptionFlags flags
- VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint
- testParams.multiView ? 0x3u : 0x0u, // deUint32 viewMask
- 0u, // deUint32 inputAttachmentCount
- DE_NULL, // const VkAttachmentReference* pInputAttachments
- static_cast<deUint32>(colorAttachmentRefs0.size()), // deUint32 colorAttachmentCount
- colorAttachmentRefs0.data(), // const VkAttachmentReference* pColorAttachments
- resolveAttachmentRefs0.empty() ? DE_NULL : resolveAttachmentRefs0.data(), // const VkAttachmentReference* pResolveAttachments
- DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment
- 0u, // deUint32 preserveAttachmentCount
- DE_NULL // const deUint32* pPreserveAttachments
+ (VkSubpassDescriptionFlags)0, // VkSubpassDescriptionFlags flags
+ VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint
+ viewMask, // deUint32 viewMask
+ 0u, // deUint32 inputAttachmentCount
+ DE_NULL, // const VkAttachmentReference* pInputAttachments
+ static_cast<deUint32>(colorAttachmentRefs0.size()), // deUint32 colorAttachmentCount
+ colorAttachmentRefs0.data(), // const VkAttachmentReference* pColorAttachments
+ makeCopySubpass ? DE_NULL : pResolveAttachments, // const VkAttachmentReference* pResolveAttachments
+ DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment
+ 0u, // deUint32 preserveAttachmentCount
+ DE_NULL // const deUint32* pPreserveAttachments
}
};
- std::vector<AttachmentRef> inputAttachmentRefs1
+ std::vector<AttachmentRef> inputAttachmentRefs1
{
{ DE_NULL, 0u, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
};
- std::vector<AttachmentRef> colorAttachmentRefs1
+ std::vector<AttachmentRef> colorAttachmentRefs1
{
{ DE_NULL, copyAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
};
- std::vector<AttachmentRef> resolveAttachmentRefs1;
- if (testParams.makeCopy)
- {
- if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
- resolveAttachmentRefs1.push_back({ DE_NULL, multisampleAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT });
-
- subpassDescriptions.push_back(
- {
- DE_NULL,
- (VkSubpassDescriptionFlags)0, // VkSubpassDescriptionFlags flags
- VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint
- testParams.multiView ? 0x3u : 0x0u, // deUint32 viewMask
- static_cast<deUint32>(inputAttachmentRefs1.size()), // deUint32 inputAttachmentCount
- inputAttachmentRefs1.data(), // const VkAttachmentReference* pInputAttachments
- static_cast<deUint32>(colorAttachmentRefs1.size()), // deUint32 colorAttachmentCount
- colorAttachmentRefs1.data(), // const VkAttachmentReference* pColorAttachments
- resolveAttachmentRefs1.empty() ? DE_NULL : resolveAttachmentRefs1.data(), // const VkAttachmentReference* pResolveAttachments
- DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment
- 0u, // deUint32 preserveAttachmentCount
- DE_NULL // const deUint32* pPreserveAttachments
- }
- );
- }
+ std::vector<SubpassDep> subpassDependencies;
- std::vector<SubpassDep> subpassDependencies;
- if(testParams.makeCopy)
+ if (makeCopySubpass)
{
+ subpassDescriptions.push_back({
+ DE_NULL,
+ (VkSubpassDescriptionFlags)0, // VkSubpassDescriptionFlags flags
+ VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint
+ viewMask, // deUint32 viewMask
+ static_cast<deUint32>(inputAttachmentRefs1.size()), // deUint32 inputAttachmentCount
+ inputAttachmentRefs1.data(), // const VkAttachmentReference* pInputAttachments
+ static_cast<deUint32>(colorAttachmentRefs1.size()), // deUint32 colorAttachmentCount
+ colorAttachmentRefs1.data(), // const VkAttachmentReference* pColorAttachments
+ pResolveAttachments, // const VkAttachmentReference* pResolveAttachments
+ DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment
+ 0u, // deUint32 preserveAttachmentCount
+ DE_NULL // const deUint32* pPreserveAttachments
+ });
+
VkDependencyFlags dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
- if (testParams.multiView)
+ if (testParams.viewCount > 1)
dependencyFlags |= VK_DEPENDENCY_VIEW_LOCAL_BIT;
- subpassDependencies.push_back({
- DE_NULL, // const void* pNext
- 0u, // uint32_t srcSubpass
- 1u, // uint32_t dstSubpass
- VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags srcStageMask
- VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, // VkPipelineStageFlags dstStageMask
- VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask
- VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, // VkAccessFlags dstAccessMask
- dependencyFlags, // VkDependencyFlags dependencyFlags
- 0u // deInt32 viewOffset
- });
+ subpassDependencies.emplace_back(
+ constNullPtr, // const void* pNext
+ 0u, // uint32_t srcSubpass
+ 1u, // uint32_t dstSubpass
+ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags srcStageMask
+ VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, // VkPipelineStageFlags dstStageMask
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask
+ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, // VkAccessFlags dstAccessMask
+ dependencyFlags, // VkDependencyFlags dependencyFlags
+ 0u // deInt32 viewOffset
+ );
}
- subpassDependencies.push_back({
- DE_NULL, // const void* pNext
- testParams.makeCopy ? 1u : 0u, // uint32_t srcSubpass
- VK_SUBPASS_EXTERNAL, // uint32_t dstSubpass
- VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags srcStageMask
- VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, // VkPipelineStageFlags dstStageMask
- VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask
- VK_ACCESS_SHADER_READ_BIT, // VkAccessFlags dstAccessMask
- VK_DEPENDENCY_BY_REGION_BIT, // VkDependencyFlags dependencyFlags
- 0u // deInt32 viewOffset
- });
- VkRenderPassFragmentDensityMapCreateInfoEXT renderPassFragmentDensityMap;
- renderPassFragmentDensityMap.sType = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
- renderPassFragmentDensityMap.pNext = DE_NULL;
- renderPassFragmentDensityMap.fragmentDensityMapAttachment = { densityMapAttachmentIndex, VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT };
+ VkPipelineStageFlags dstStageMask = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+
+ // for coarse reconstruction we need to put barrier on vertex stage
+ if (testParams.coarseReconstruction)
+ dstStageMask = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT;
+
+ subpassDependencies.emplace_back(
+ constNullPtr, // const void* pNext
+ static_cast<deUint32>(subpassDescriptions.size())-1u, // uint32_t srcSubpass
+ VK_SUBPASS_EXTERNAL, // uint32_t dstSubpass
+ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags srcStageMask
+ dstStageMask, // VkPipelineStageFlags dstStageMask
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask
+ VK_ACCESS_SHADER_READ_BIT, // VkAccessFlags dstAccessMask
+ VK_DEPENDENCY_BY_REGION_BIT, // VkDependencyFlags dependencyFlags
+ 0u // deInt32 viewOffset
+ );
+
+ VkRenderPassFragmentDensityMapCreateInfoEXT renderPassFragmentDensityMap =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
+ DE_NULL,
+ { densityMapAttachmentIndex, VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT }
+ };
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
void* renderPassInfoPNext = (void*)&renderPassFragmentDensityMap;
-#else
- void* renderPassInfoPNext = DE_NULL;
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ // density map description is at the end - pop it from vector
+ attachmentDescriptions.pop_back();
+ renderPassInfoPNext = DE_NULL;
#endif
vk::VkRenderPassMultiviewCreateInfo renderPassMultiviewCreateInfo;
- std::vector<deUint32> viewMasks(subpassDescriptions.size(), 0x3u);
- deInt32 pViewOffsets = 0;
+ std::vector<deUint32> viewMasks (subpassDescriptions.size(), viewMask);
+ deInt32 pViewOffsets (0);
- if (testParams.multiView)
+ if (testParams.viewCount > 1)
{
-
- renderPassMultiviewCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
- renderPassMultiviewCreateInfo.pNext = renderPassInfoPNext;
- renderPassMultiviewCreateInfo.subpassCount = static_cast<deUint32>(viewMasks.size());
- renderPassMultiviewCreateInfo.pViewMasks = viewMasks.data();
- renderPassMultiviewCreateInfo.dependencyCount = testParams.makeCopy ? 1 : 0;
- renderPassMultiviewCreateInfo.pViewOffsets = testParams.makeCopy ? &pViewOffsets : DE_NULL;
- renderPassMultiviewCreateInfo.correlationMaskCount = 0U;
- renderPassMultiviewCreateInfo.pCorrelationMasks = DE_NULL;
- renderPassInfoPNext = (void*)&renderPassMultiviewCreateInfo;
+ renderPassMultiviewCreateInfo =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
+ renderPassInfoPNext,
+ static_cast<deUint32>(viewMasks.size()), // deUint32 subpassCount
+ viewMasks.data(), // const deUint32* pViewMasks
+ makeCopySubpass ? 1u : 0u, // deUint32 dependencyCount
+ makeCopySubpass ? &pViewOffsets : DE_NULL, // const deInt32* pViewOffsets
+ 0u, // deUint32 correlationMaskCount
+ DE_NULL, // const deUint32* pCorrelationMasks
+ };
+ renderPassInfoPNext = (void*)&renderPassMultiviewCreateInfo;
}
const RenderPassCreateInfo renderPassInfo(
return renderPassInfo.createRenderPass(vk, vkDevice);
}
-template<typename AttachmentDesc, typename AttachmentRef, typename SubpassDesc, typename SubpassDep, typename RenderPassCreateInfo>
Move<VkRenderPass> createRenderPassOutputSubsampledImage(const DeviceInterface& vk,
- VkDevice vkDevice,
- const TestParams& testParams)
+ VkDevice vkDevice)
{
- DE_UNREF(testParams);
- // copy subsampled image to ordinary image - you cannot retrieve subsampled image to CPU in any way. You must first convert it into plain image through rendering
- std::vector<AttachmentDesc> attachmentDescriptions =
+ typedef AttachmentDescription2 AttachmentDesc;
+ typedef AttachmentReference2 AttachmentRef;
+ typedef SubpassDescription2 SubpassDesc;
+ typedef RenderPassCreateInfo2 RenderPassCreateInfo;
+
+ // copy subsampled image to ordinary image - you cannot retrieve subsampled image to CPU in any way.
+ // You must first convert it into plain image through rendering
+ std::vector<AttachmentDesc> attachmentDescriptions =
{
// output attachment
- AttachmentDesc(
+ {
DE_NULL, // const void* pNext
(VkAttachmentDescriptionFlags)0, // VkAttachmentDescriptionFlags flags
VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format
VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp
VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout
- ),
+ },
};
std::vector<AttachmentRef> colorAttachmentRefs
{ DE_NULL, 0u, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
};
- std::vector<SubpassDesc> subpassDescriptions =
+ std::vector<SubpassDesc> subpassDescriptions =
{
{
DE_NULL,
return renderPassInfo.createRenderPass(vk, vkDevice);
}
-Move<VkFramebuffer> createFrameBuffer( const DeviceInterface& vk, VkDevice vkDevice, VkRenderPass renderPass, deUint32 width, deUint32 height, const std::vector<VkImageView>& imageViews)
+Move<VkFramebuffer> createFrameBuffer( const DeviceInterface& vk, VkDevice vkDevice, VkRenderPass renderPass, VkExtent3D size, const std::vector<VkImageView>& imageViews)
{
- const VkFramebufferCreateInfo framebufferParams =
+ const VkFramebufferCreateInfo framebufferParams =
{
VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, // VkStructureType sType;
DE_NULL, // const void* pNext;
renderPass, // VkRenderPass renderPass;
static_cast<deUint32>(imageViews.size()), // deUint32 attachmentCount;
imageViews.data(), // const VkImageView* pAttachments;
- width, // deUint32 width;
- height, // deUint32 height;
+ size.width, // deUint32 width;
+ size.height, // deUint32 height;
1u // deUint32 layers;
};
return createFramebuffer(vk, vkDevice, &framebufferParams);
}
-class FragmentDensityMapTest : public vkt::TestCase
-{
-public:
- FragmentDensityMapTest (tcu::TestContext& testContext,
- const std::string& name,
- const std::string& description,
- const TestParams& testParams);
- virtual void initPrograms (SourceCollections& sourceCollections) const;
- virtual TestInstance* createInstance (Context& context) const;
- virtual void checkSupport (Context& context) const;
-
-private:
- const TestParams m_testParams;
-};
-
-class FragmentDensityMapTestInstance : public vkt::TestInstance
+void copyBufferToImage(const DeviceInterface& vk,
+ VkDevice device,
+ VkQueue queue,
+ deUint32 queueFamilyIndex,
+ const VkBuffer& buffer,
+ VkDeviceSize bufferSize,
+ const VkExtent3D& imageSize,
+ deUint32 arrayLayers,
+ VkImage destImage)
{
-public:
- FragmentDensityMapTestInstance (Context& context,
- const TestParams& testParams);
- virtual tcu::TestStatus iterate (void);
-private:
- tcu::TestStatus verifyImage (void);
-
- TestParams m_testParams;
-
- VkPhysicalDeviceFragmentDensityMapPropertiesEXT m_fragmentDensityMapProperties;
+ Move<VkCommandPool> cmdPool = createCommandPool(vk, device, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
+ Move<VkCommandBuffer> cmdBuffer = allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+ Move<VkFence> fence = createFence(vk, device);
+ VkImageLayout destImageLayout = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT;
+ VkPipelineStageFlags destImageDstStageFlags = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT;
+ VkAccessFlags finalAccessMask = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT;
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ destImageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+ destImageDstStageFlags = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+ finalAccessMask = VK_ACCESS_SHADER_READ_BIT;
+#endif
- Move<VkCommandPool> m_cmdPool;
+ const VkCommandBufferBeginInfo cmdBufferBeginInfo =
+ {
+ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, // VkCommandBufferUsageFlags flags;
+ (const VkCommandBufferInheritanceInfo*)DE_NULL,
+ };
- Move<VkImage> m_densityMapImage;
- de::MovePtr<Allocation> m_densityMapImageAlloc;
- Move<VkImageView> m_densityMapImageView;
+ const VkBufferImageCopy copyRegion =
+ {
+ 0, // VkDeviceSize bufferOffset
+ 0, // deUint32 bufferRowLength
+ 0, // deUint32 bufferImageHeight
+ { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, arrayLayers }, // VkImageSubresourceLayers imageSubresource
+ { 0, 0, 0 }, // VkOffset3D imageOffset
+ imageSize // VkExtent3D imageExtent
+ };
- Move<VkImage> m_colorImage;
- de::MovePtr<Allocation> m_colorImageAlloc;
- Move<VkImageView> m_colorImageView;
+ // Barriers for copying buffer to image
+ const VkBufferMemoryBarrier preBufferBarrier = makeBufferMemoryBarrier(
+ VK_ACCESS_HOST_WRITE_BIT, // VkAccessFlags srcAccessMask;
+ VK_ACCESS_TRANSFER_READ_BIT, // VkAccessFlags dstAccessMask;
+ buffer, // VkBuffer buffer;
+ 0u, // VkDeviceSize offset;
+ bufferSize // VkDeviceSize size;
+ );
- Move<VkImage> m_colorCopyImage;
- de::MovePtr<Allocation> m_colorCopyImageAlloc;
- Move<VkImageView> m_colorCopyImageView;
+ const VkImageSubresourceRange subresourceRange
+ { // VkImageSubresourceRange subresourceRange;
+ VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspect;
+ 0u, // deUint32 baseMipLevel;
+ 1u, // deUint32 mipLevels;
+ 0u, // deUint32 baseArraySlice;
+ arrayLayers // deUint32 arraySize;
+ };
- Move<VkImage> m_colorResolvedImage;
- de::MovePtr<Allocation> m_colorResolvedImageAlloc;
- Move<VkImageView> m_colorResolvedImageView;
+ const VkImageMemoryBarrier preImageBarrier = makeImageMemoryBarrier(
+ 0u, // VkAccessFlags srcAccessMask;
+ VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags dstAccessMask;
+ VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout;
+ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout newLayout;
+ destImage, // VkImage image;
+ subresourceRange // VkImageSubresourceRange subresourceRange;
+ );
- Move<VkImage> m_outputImage;
- de::MovePtr<Allocation> m_outputImageAlloc;
- Move<VkImageView> m_outputImageView;
+ const VkImageMemoryBarrier postImageBarrier = makeImageMemoryBarrier(
+ VK_ACCESS_TRANSFER_WRITE_BIT, // VkAccessFlags srcAccessMask;
+ finalAccessMask, // VkAccessFlags dstAccessMask;
+ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, // VkImageLayout oldLayout;
+ destImageLayout, // VkImageLayout newLayout;
+ destImage, // VkImage image;
+ subresourceRange // VkImageSubresourceRange subresourceRange;
+ );
- Move<VkSampler> m_colorSampler;
+ VK_CHECK(vk.beginCommandBuffer(*cmdBuffer, &cmdBufferBeginInfo));
+ vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &preBufferBarrier, 1, &preImageBarrier);
+ vk.cmdCopyBufferToImage(*cmdBuffer, buffer, destImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1u, ©Region);
+ vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, destImageDstStageFlags, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
+ VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
- Move<VkRenderPass> m_renderPassProduceDynamicDensityMap;
- Move<VkRenderPass> m_renderPassProduceSubsampledImage;
- Move<VkRenderPass> m_renderPassOutputSubsampledImage;
- Move<VkFramebuffer> m_framebufferProduceDynamicDensityMap;
- Move<VkFramebuffer> m_framebufferProduceSubsampledImage;
- Move<VkFramebuffer> m_framebufferOutputSubsampledImage;
+ const VkPipelineStageFlags pipelineStageFlags = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT;
- Move<VkDescriptorSetLayout> m_descriptorSetLayoutProduceSubsampled;
+ const VkSubmitInfo submitInfo =
+ {
+ VK_STRUCTURE_TYPE_SUBMIT_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0u, // deUint32 waitSemaphoreCount;
+ DE_NULL, // const VkSemaphore* pWaitSemaphores;
+ &pipelineStageFlags, // const VkPipelineStageFlags* pWaitDstStageMask;
+ 1u, // deUint32 commandBufferCount;
+ &cmdBuffer.get(), // const VkCommandBuffer* pCommandBuffers;
+ 0u, // deUint32 signalSemaphoreCount;
+ DE_NULL // const VkSemaphore* pSignalSemaphores;
+ };
- Move<VkDescriptorSetLayout> m_descriptorSetLayoutCopySubsampledImage;
- Move<VkDescriptorPool> m_descriptorPoolCopySubsampledImage;
- Move<VkDescriptorSet> m_descriptorSetCopySubsampledImage;
+ try
+ {
+ VK_CHECK(vk.queueSubmit(queue, 1, &submitInfo, *fence));
+ VK_CHECK(vk.waitForFences(device, 1, &fence.get(), true, ~(0ull) /* infinity */));
+ }
+ catch (...)
+ {
+ VK_CHECK(vk.deviceWaitIdle(device));
+ throw;
+ }
+}
- Move<VkDescriptorSetLayout> m_descriptorSetLayoutOutputSubsampledImage;
- Move<VkDescriptorPool> m_descriptorPoolOutputSubsampledImage;
- Move<VkDescriptorSet> m_descriptorSetOutputSubsampledImage;
+class FragmentDensityMapTest : public vkt::TestCase
+{
+public:
+ FragmentDensityMapTest (tcu::TestContext& testContext,
+ const std::string& name,
+ const std::string& description,
+ const TestParams& testParams);
+ virtual void initPrograms (SourceCollections& sourceCollections) const;
+ virtual TestInstance* createInstance (Context& context) const;
+ virtual void checkSupport (Context& context) const;
- Move<VkShaderModule> m_vertexCommonShaderModule;
- Move<VkShaderModule> m_fragmentShaderModuleProduceSubsampledImage;
- Move<VkShaderModule> m_fragmentShaderModuleCopySubsampledImage;
- Move<VkShaderModule> m_fragmentShaderModuleOutputSubsampledImage;
+private:
+ const TestParams m_testParams;
+};
- std::vector<Vertex4RGBA> m_verticesDDM;
- Move<VkBuffer> m_vertexBufferDDM;
- de::MovePtr<Allocation> m_vertexBufferAllocDDM;
+class FragmentDensityMapTestInstance : public vkt::TestInstance
+{
+public:
+ FragmentDensityMapTestInstance (Context& context,
+ const TestParams& testParams);
+ virtual tcu::TestStatus iterate (void);
- std::vector<Vertex4RGBA> m_vertices;
- Move<VkBuffer> m_vertexBuffer;
- de::MovePtr<Allocation> m_vertexBufferAlloc;
+private:
- std::vector<Vertex4RGBA> m_verticesOutput;
- Move<VkBuffer> m_vertexBufferOutput;
- de::MovePtr<Allocation> m_vertexBufferOutputAlloc;
+ tcu::TestStatus verifyImage (void);
- Move<VkPipelineLayout> m_pipelineLayoutNoDescriptors;
- Move<VkPipelineLayout> m_pipelineLayoutCopySubsampledImage;
- Move<VkPipelineLayout> m_pipelineLayoutOutputSubsampledImage;
- Move<VkPipeline> m_graphicsPipelineProduceDynamicDensityMap;
- Move<VkPipeline> m_graphicsPipelineProduceSubsampledImage;
- Move<VkPipeline> m_graphicsPipelineCopySubsampledImage;
- Move<VkPipeline> m_graphicsPipelineOutputSubsampledImage;
+private:
- Move<VkCommandBuffer> m_cmdBuffer;
+ typedef de::SharedPtr<Unique<VkSampler> > VkSamplerSp;
+ typedef de::SharedPtr<Unique<VkImage> > VkImageSp;
+ typedef de::SharedPtr<Allocation> AllocationSp;
+ typedef de::SharedPtr<Unique<VkImageView> > VkImageViewSp;
+
+ TestParams m_testParams;
+ tcu::UVec2 m_renderSize;
+ tcu::Vec2 m_densityValue;
+ deUint32 m_viewMask;
+
+ Move<VkCommandPool> m_cmdPool;
+
+ std::vector<VkImageSp> m_densityMapImages;
+ std::vector<AllocationSp> m_densityMapImageAllocs;
+ std::vector<VkImageViewSp> m_densityMapImageViews;
+
+ Move<VkImage> m_colorImage;
+ de::MovePtr<Allocation> m_colorImageAlloc;
+ Move<VkImageView> m_colorImageView;
+
+ Move<VkImage> m_colorCopyImage;
+ de::MovePtr<Allocation> m_colorCopyImageAlloc;
+ Move<VkImageView> m_colorCopyImageView;
+
+ Move<VkImage> m_colorResolvedImage;
+ de::MovePtr<Allocation> m_colorResolvedImageAlloc;
+ Move<VkImageView> m_colorResolvedImageView;
+
+ Move<VkImage> m_outputImage;
+ de::MovePtr<Allocation> m_outputImageAlloc;
+ Move<VkImageView> m_outputImageView;
+
+ std::vector<VkSamplerSp> m_colorSamplers;
+
+ Move<VkRenderPass> m_renderPassProduceDynamicDensityMap;
+ Move<VkRenderPass> m_renderPassProduceSubsampledImage;
+ Move<VkRenderPass> m_renderPassUpdateSubsampledImage;
+ Move<VkRenderPass> m_renderPassOutputSubsampledImage;
+ Move<VkFramebuffer> m_framebufferProduceDynamicDensityMap;
+ Move<VkFramebuffer> m_framebufferProduceSubsampledImage;
+ Move<VkFramebuffer> m_framebufferUpdateSubsampledImage;
+ Move<VkFramebuffer> m_framebufferOutputSubsampledImage;
+
+ Move<VkDescriptorSetLayout> m_descriptorSetLayoutProduceSubsampled;
+
+ Move<VkDescriptorSetLayout> m_descriptorSetLayoutOperateOnSubsampledImage;
+ Move<VkDescriptorPool> m_descriptorPoolOperateOnSubsampledImage;
+ Move<VkDescriptorSet> m_descriptorSetOperateOnSubsampledImage;
+
+ Move<VkDescriptorSetLayout> m_descriptorSetLayoutOutputSubsampledImage;
+ Move<VkDescriptorPool> m_descriptorPoolOutputSubsampledImage;
+ Move<VkDescriptorSet> m_descriptorSetOutputSubsampledImage;
+
+ Move<VkShaderModule> m_vertexCommonShaderModule;
+ Move<VkShaderModule> m_fragmentShaderModuleProduceSubsampledImage;
+ Move<VkShaderModule> m_fragmentShaderModuleCopySubsampledImage;
+ Move<VkShaderModule> m_fragmentShaderModuleUpdateSubsampledImage;
+ Move<VkShaderModule> m_fragmentShaderModuleOutputSubsampledImage;
+
+ std::vector<Vertex4RGBA> m_verticesDDM;
+ Move<VkBuffer> m_vertexBufferDDM;
+ de::MovePtr<Allocation> m_vertexBufferAllocDDM;
+
+ std::vector<Vertex4RGBA> m_vertices;
+ Move<VkBuffer> m_vertexBuffer;
+ de::MovePtr<Allocation> m_vertexBufferAlloc;
+
+ std::vector<Vertex4RGBA> m_verticesOutput;
+ Move<VkBuffer> m_vertexBufferOutput;
+ de::MovePtr<Allocation> m_vertexBufferOutputAlloc;
+
+ Move<VkPipelineLayout> m_pipelineLayoutNoDescriptors;
+ Move<VkPipelineLayout> m_pipelineLayoutOperateOnSubsampledImage;
+ Move<VkPipelineLayout> m_pipelineLayoutOutputSubsampledImage;
+ Move<VkPipeline> m_graphicsPipelineProduceDynamicDensityMap;
+ Move<VkPipeline> m_graphicsPipelineProduceSubsampledImage;
+ Move<VkPipeline> m_graphicsPipelineCopySubsampledImage;
+ Move<VkPipeline> m_graphicsPipelineUpdateSubsampledImage;
+ Move<VkPipeline> m_graphicsPipelineOutputSubsampledImage;
+
+ Move<VkCommandBuffer> m_cmdBuffer;
};
FragmentDensityMapTest::FragmentDensityMapTest (tcu::TestContext& testContext,
: vkt::TestCase (testContext, name, description)
, m_testParams (testParams)
{
+ DE_ASSERT(testParams.samplersCount > 0);
}
void FragmentDensityMapTest::initPrograms(SourceCollections& sourceCollections) const
{
- std::ostringstream densityVertexGLSL;
- densityVertexGLSL <<
+ sourceCollections.glslSources.add("vert") << glu::VertexSource(
"#version 450\n"
"#extension GL_EXT_multiview : enable\n"
"layout(location = 0) in vec4 inPosition;\n"
" gl_Position = inPosition;\n"
" outUV = inUV;\n"
" outColor = inColor;\n"
- "}\n";
- sourceCollections.glslSources.add("densitymap_vert") << glu::VertexSource(densityVertexGLSL.str());
+ "}\n"
+ );
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ sourceCollections.glslSources.add("frag_produce_subsampled") << glu::FragmentSource(
+ "#version 450\n"
+ "#extension GL_EXT_multiview : enable\n"
+ "layout(location = 0) in vec4 inUV;\n"
+ "layout(location = 1) in vec4 inColor;\n"
+ "layout(location = 0) out vec4 fragColor;\n"
+ "void main(void)\n"
+ "{\n"
+ " fragColor = vec4(inColor.x, inColor.y, 0.5, 0.5);\n"
+ "}\n"
+ );
- std::ostringstream densityFragmentProduceGLSL;
- densityFragmentProduceGLSL <<
+ sourceCollections.glslSources.add("frag_update_subsampled") << glu::FragmentSource(
+ "#version 450\n"
+ "#extension GL_EXT_multiview : enable\n"
+ "layout(location = 0) in vec4 inUV;\n"
+ "layout(location = 1) in vec4 inColor;\n"
+ "layout(location = 0) out vec4 fragColor;\n"
+ "void main(void)\n"
+ "{\n"
+ " if (gl_FragCoord.y < 0.5)\n"
+ " discard;\n"
+ " fragColor = vec4(inColor.x, inColor.y, 0.5, 0.5);\n"
+ "}\n"
+ );
+#else
+ sourceCollections.glslSources.add("frag_produce_subsampled") << glu::FragmentSource(
"#version 450\n"
"#extension GL_EXT_fragment_invocation_density : enable\n"
"#extension GL_EXT_multiview : enable\n"
"void main(void)\n"
"{\n"
" fragColor = vec4(inColor.x, inColor.y, 1.0/float(gl_FragSizeEXT.x), 1.0/(gl_FragSizeEXT.y));\n"
- "}\n";
- sourceCollections.glslSources.add("densitymap_frag_produce") << glu::FragmentSource(densityFragmentProduceGLSL.str());
+ "}\n"
+ );
- std::ostringstream densityFragmentCopyGLSL;
- densityFragmentCopyGLSL <<
+ sourceCollections.glslSources.add("frag_update_subsampled") << glu::FragmentSource(
"#version 450\n"
"#extension GL_EXT_fragment_invocation_density : enable\n"
"#extension GL_EXT_multiview : enable\n"
"layout(location = 0) in vec4 inUV;\n"
"layout(location = 1) in vec4 inColor;\n"
- "layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInput inputAtt;\n"
"layout(location = 0) out vec4 fragColor;\n"
"void main(void)\n"
"{\n"
- " fragColor = subpassLoad(inputAtt);\n"
- "}\n";
- sourceCollections.glslSources.add("densitymap_frag_copy") << glu::FragmentSource(densityFragmentCopyGLSL.str());
-
- std::ostringstream densityFragmentCopyMultisampledGLSL;
- densityFragmentCopyMultisampledGLSL <<
+ " if (gl_FragCoord.y < 0.5)\n"
+ " discard;\n"
+ " fragColor = vec4(inColor.x, inColor.y, 1.0/float(gl_FragSizeEXT.x), 1.0/(gl_FragSizeEXT.y));\n"
+ "}\n"
+ );
+#endif
+ sourceCollections.glslSources.add("frag_copy_subsampled") << glu::FragmentSource(
"#version 450\n"
"#extension GL_EXT_fragment_invocation_density : enable\n"
"#extension GL_EXT_multiview : enable\n"
"layout(location = 0) in vec4 inUV;\n"
"layout(location = 1) in vec4 inColor;\n"
- "layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS inputAtt;\n"
+ "layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInput inputAtt;\n"
"layout(location = 0) out vec4 fragColor;\n"
"void main(void)\n"
"{\n"
- " fragColor = subpassLoad(inputAtt, gl_SampleID);\n"
- "}\n";
- sourceCollections.glslSources.add("densitymap_frag_copy_ms") << glu::FragmentSource(densityFragmentCopyMultisampledGLSL.str());
+ " fragColor = subpassLoad(inputAtt);\n"
+ "}\n"
+ );
- std::ostringstream densityFragmentOutput2DGLSL;
- densityFragmentOutput2DGLSL <<
+ sourceCollections.glslSources.add("frag_copy_subsampled_ms") << glu::FragmentSource(
"#version 450\n"
+ "#extension GL_EXT_fragment_invocation_density : enable\n"
+ "#extension GL_EXT_multiview : enable\n"
"layout(location = 0) in vec4 inUV;\n"
"layout(location = 1) in vec4 inColor;\n"
- "layout(binding = 0) uniform sampler2D subsampledImage;\n"
+ "layout(input_attachment_index = 0, set = 0, binding = 0) uniform subpassInputMS inputAtt;\n"
"layout(location = 0) out vec4 fragColor;\n"
"void main(void)\n"
"{\n"
- " fragColor = texture(subsampledImage, inUV.xy);\n"
- "}\n";
- sourceCollections.glslSources.add("densitymap_frag_output_2d") << glu::FragmentSource(densityFragmentOutput2DGLSL.str());
+ " fragColor = subpassLoad(inputAtt, gl_SampleID);\n"
+ "}\n"
+ );
- std::ostringstream densityFragmentOutput2DArrayGLSL;
- densityFragmentOutput2DArrayGLSL <<
+ const char* samplersDefTemplate =
+ "layout(binding = ${BINDING}) uniform ${SAMPLER} subsampledImage${BINDING};\n";
+ const char* sumColorsTemplate =
+ " fragColor += texture(subsampledImage${BINDING}, inUV.${COMPONENTS});\n";
+
+ const char* densitymapOutputTemplate =
"#version 450\n"
"layout(location = 0) in vec4 inUV;\n"
"layout(location = 1) in vec4 inColor;\n"
- "layout(binding = 0) uniform sampler2DArray subsampledImage;\n"
+ "${SAMPLERS_DEF}"
"layout(location = 0) out vec4 fragColor;\n"
"void main(void)\n"
"{\n"
- " fragColor = texture(subsampledImage, inUV.xyz);\n"
+ " fragColor = vec4(0);\n"
+ "${SUM_COLORS}"
+ " fragColor /= float(${COUNT});\n"
"}\n";
- sourceCollections.glslSources.add("densitymap_frag_output_2darray") << glu::FragmentSource(densityFragmentOutput2DArrayGLSL.str());
+ std::map<std::string, std::string> parameters
+ {
+ { "SAMPLER", "" },
+ { "BINDING", "" },
+ { "COMPONENTS", "" },
+ { "COUNT", std::to_string(m_testParams.samplersCount) },
+ { "SAMPLERS_DEF", "" },
+ { "SUM_COLORS", "" },
+ };
+
+ std::string sampler2dDefs;
+ std::string sampler2dSumColors;
+ std::string sampler2dArrayDefs;
+ std::string sampler2dArraySumColors;
+ for (deUint32 samplerIndex = 0; samplerIndex < m_testParams.samplersCount; ++samplerIndex)
+ {
+ parameters["BINDING"] = std::to_string(samplerIndex);
+
+ parameters["COMPONENTS"] = "xy";
+ parameters["SAMPLER"] = "sampler2D";
+ sampler2dDefs += tcu::StringTemplate(samplersDefTemplate).specialize(parameters);
+ sampler2dSumColors += tcu::StringTemplate(sumColorsTemplate).specialize(parameters);
+
+ parameters["COMPONENTS"] = "xyz";
+ parameters["SAMPLER"] = "sampler2DArray";
+ sampler2dArrayDefs += tcu::StringTemplate(samplersDefTemplate).specialize(parameters);
+ sampler2dArraySumColors += tcu::StringTemplate(sumColorsTemplate).specialize(parameters);
+ }
+
+ parameters["SAMPLERS_DEF"] = sampler2dDefs;
+ parameters["SUM_COLORS"] = sampler2dSumColors;
+ sourceCollections.glslSources.add("frag_output_2d")
+ << glu::FragmentSource(tcu::StringTemplate(densitymapOutputTemplate).specialize(parameters));
+
+ parameters["SAMPLERS_DEF"] = sampler2dArrayDefs;
+ parameters["SUM_COLORS"] = sampler2dArraySumColors;
+ sourceCollections.glslSources.add("frag_output_2darray")
+ << glu::FragmentSource(tcu::StringTemplate(densitymapOutputTemplate).specialize(parameters));
}
TestInstance* FragmentDensityMapTest::createInstance(Context& context) const
const InstanceInterface& vki = context.getInstanceInterface();
const VkPhysicalDevice vkPhysicalDevice = context.getPhysicalDevice();
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ if (m_testParams.viewCount > 1)
+ {
+ context.requireDeviceFunctionality("VK_KHR_multiview");
+ if (!context.getMultiviewFeatures().multiview)
+ TCU_THROW(NotSupportedError, "Implementation does not support multiview feature");
+ }
+#else
context.requireDeviceFunctionality("VK_EXT_fragment_density_map");
- VkPhysicalDeviceFeatures2 features;
- deMemset(&features, 0, sizeof(VkPhysicalDeviceFeatures2));
- features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-
- VkPhysicalDeviceFragmentDensityMapFeaturesEXT fragmentDensityMapFeatures;
- deMemset(&fragmentDensityMapFeatures, 0, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
- fragmentDensityMapFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
- features.pNext = &fragmentDensityMapFeatures;
-
- vki.getPhysicalDeviceFeatures2(vkPhysicalDevice, &features);
+ const auto& fragmentDensityMapFeatures = context.getFragmentDensityMapFeaturesEXT();
+ const auto& fragmentDensityMapProperties2 = context.getFragmentDensityMapProperties2EXT();
if (!fragmentDensityMapFeatures.fragmentDensityMap)
TCU_THROW(NotSupportedError, "fragmentDensityMap feature is not supported");
TCU_THROW(NotSupportedError, "fragmentDensityMapDynamic feature is not supported");
if (m_testParams.nonSubsampledImages && !fragmentDensityMapFeatures.fragmentDensityMapNonSubsampledImages)
TCU_THROW(NotSupportedError, "fragmentDensityMapNonSubsampledImages feature is not supported");
-#endif
- if (m_testParams.multiView)
+
+ if (m_testParams.deferredDensityMap)
{
- context.requireDeviceFunctionality("VK_KHR_multiview");
- const vk::VkPhysicalDeviceMultiviewFeatures& multiviewFeatures = context.getMultiviewFeatures();
- if (!multiviewFeatures.multiview)
- TCU_THROW(NotSupportedError, "Implementation does not support multiview feature");
+ context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+ if (!context.getFragmentDensityMapFeatures2EXT().fragmentDensityMapDeferred)
+ TCU_THROW(NotSupportedError, "fragmentDensityMapDeferred feature is not supported");
}
+ if (m_testParams.subsampledLoads)
{
- vk::VkImageUsageFlags colorImageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
- if (m_testParams.makeCopy)
- colorImageUsage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- deUint32 colorImageCreateFlags = m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
-#else
- deUint32 colorImageCreateFlags = 0u;
-#endif
- VkImageFormatProperties imageFormatProperties(getPhysicalDeviceImageFormatProperties(vki, vkPhysicalDevice, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_OPTIMAL, colorImageUsage, colorImageCreateFlags));
- if ((imageFormatProperties.sampleCounts & m_testParams.colorSamples) == 0)
- TCU_THROW(NotSupportedError, "Color image type not supported");
+ context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+ if (!fragmentDensityMapProperties2.subsampledLoads)
+ TCU_THROW(NotSupportedError, "subsampledLoads property is not supported");
}
-}
-
-FragmentDensityMapTestInstance::FragmentDensityMapTestInstance(Context& context,
- const TestParams& testParams)
- : vkt::TestInstance ( context )
- , m_testParams ( testParams )
-{
- const DeviceInterface& vk = m_context.getDeviceInterface();
- const VkDevice vkDevice = m_context.getDevice();
- const VkPhysicalDevice vkPhysicalDevice = m_context.getPhysicalDevice();
- const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
- SimpleAllocator memAlloc (vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), vkPhysicalDevice));
- const VkComponentMapping componentMappingRGBA = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
-
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
+ if (m_testParams.coarseReconstruction)
{
- VkPhysicalDeviceProperties2 properties;
- deMemset(&properties, 0, sizeof(VkPhysicalDeviceProperties2));
- properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+ context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+ if (!fragmentDensityMapProperties2.subsampledCoarseReconstructionEarlyAccess)
+ TCU_THROW(NotSupportedError, "subsampledCoarseReconstructionEarlyAccess property is not supported");
+ }
- deMemset(&m_fragmentDensityMapProperties, 0, sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT));
- m_fragmentDensityMapProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
- properties.pNext = &m_fragmentDensityMapProperties;
+ if (m_testParams.viewCount > 1)
+ {
+ context.requireDeviceFunctionality("VK_KHR_multiview");
+ if (!context.getMultiviewFeatures().multiview)
+ TCU_THROW(NotSupportedError, "Implementation does not support multiview feature");
- context.getInstanceInterface().getPhysicalDeviceProperties2(vkPhysicalDevice, &properties);
+ if (m_testParams.viewCount > 2)
+ {
+ context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+ if (m_testParams.viewCount > fragmentDensityMapProperties2.maxSubsampledArrayLayers)
+ TCU_THROW(NotSupportedError, "Maximum number of VkImageView array layers for usages supporting subsampled samplers is to small");
+ }
}
-#else
+
+ if (!m_testParams.nonSubsampledImages && (m_testParams.samplersCount > 1))
{
- m_fragmentDensityMapProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
- m_fragmentDensityMapProperties.minFragmentDensityTexelSize.width = 1u;
- m_fragmentDensityMapProperties.maxFragmentDensityTexelSize.width = 1u;
- m_fragmentDensityMapProperties.minFragmentDensityTexelSize.height = 1u;
- m_fragmentDensityMapProperties.maxFragmentDensityTexelSize.height = 1u;
- m_fragmentDensityMapProperties.fragmentDensityInvocations = DE_FALSE;
- m_testParams.fragmentArea.x() = 1u;
- m_testParams.fragmentArea.y() = 1u;
+ context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+ if (m_testParams.samplersCount > fragmentDensityMapProperties2.maxDescriptorSetSubsampledSamplers)
+ TCU_THROW(NotSupportedError, "Required number of subsampled samplers is not supported");
}
#endif
+ vk::VkImageUsageFlags colorImageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
+ if (m_testParams.makeCopy)
+ colorImageUsage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
+
+ deUint32 colorImageCreateFlags = m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
+ VkImageFormatProperties imageFormatProperties (getPhysicalDeviceImageFormatProperties(vki, vkPhysicalDevice, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_OPTIMAL, colorImageUsage, colorImageCreateFlags));
+
+ if ((imageFormatProperties.sampleCounts & m_testParams.colorSamples) == 0)
+ TCU_THROW(NotSupportedError, "Color image type not supported");
+}
+
+FragmentDensityMapTestInstance::FragmentDensityMapTestInstance(Context& context,
+ const TestParams& testParams)
+ : vkt::TestInstance (context)
+ , m_testParams (testParams)
+{
+ m_renderSize = tcu::UVec2(deFloorFloatToInt32(m_testParams.renderMultiplier * static_cast<float>(m_testParams.densityMapSize.x())),
+ deFloorFloatToInt32(m_testParams.renderMultiplier * static_cast<float>(m_testParams.densityMapSize.y())));
+ m_densityValue = tcu::Vec2(1.0f / static_cast<float>(m_testParams.fragmentArea.x()),
+ 1.0f / static_cast<float>(m_testParams.fragmentArea.y()));
+ m_viewMask = (m_testParams.viewCount > 1) ? ((1u << m_testParams.viewCount) - 1u) : 0u;
+
+ const DeviceInterface& vk = m_context.getDeviceInterface();
+ const VkDevice vkDevice = m_context.getDevice();
+ const VkPhysicalDevice vkPhysicalDevice = m_context.getPhysicalDevice();
+ const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
+ SimpleAllocator memAlloc (vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), vkPhysicalDevice));
+ const VkComponentMapping componentMappingRGBA = makeComponentMappingRGBA();
+
// calculate all image sizes, image usage flags, view types etc.
- VkExtent3D densityMapImageSize { m_testParams.densityMapSize.x(), m_testParams.densityMapSize.y(), 1 };
- deUint32 densityMapImageLayers = m_testParams.multiView ? 2 : 1 ;
- VkImageViewType densityImageViewType = m_testParams.multiView ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- vk::VkImageUsageFlags densityMapImageUsage = m_testParams.dynamicDensityMap ? VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT : VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT;
-#else
- vk::VkImageUsageFlags densityMapImageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
-#endif
- deUint32 densityMapImageViewCreateFlags = m_testParams.dynamicDensityMap ? (deUint32)VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT : 0u;
-
- VkExtent3D colorMapImageSize = m_testParams.multiView ?
- VkExtent3D{ m_testParams.renderSize.x() / 2, m_testParams.renderSize.y(), 1 } :
- VkExtent3D{ m_testParams.renderSize.x(), m_testParams.renderSize.y(), 1 };
- deUint32 colorImageLayers = m_testParams.multiView ? 2 : 1 ;
- VkImageViewType colorImageViewType = m_testParams.multiView ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
- vk::VkImageUsageFlags colorImageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
+ deUint32 densitiMapCount = 1 + m_testParams.subsampledLoads;
+ VkExtent3D densityMapImageSize { m_testParams.densityMapSize.x(), m_testParams.densityMapSize.y(), 1 };
+ deUint32 densityMapImageLayers = m_testParams.viewCount;
+ VkImageViewType densityMapImageViewType = (m_testParams.viewCount > 1) ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
+ vk::VkImageUsageFlags densityMapImageUsage = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+ deUint32 densityMapImageViewFlags = 0u;
+
+ VkExtent3D colorImageSize { m_renderSize.x() / m_testParams.viewCount, m_renderSize.y(), 1 };
+ deUint32 colorImageLayers = densityMapImageLayers;
+ VkImageViewType colorImageViewType = densityMapImageViewType;
+ vk::VkImageUsageFlags colorImageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
+ deUint32 colorImageCreateFlags = m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
+ bool isColorImageMultisampled = m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT;
+
+ VkExtent3D outputImageSize { m_renderSize.x(), m_renderSize.y(), 1 };
+
+ if (m_testParams.dynamicDensityMap)
+ {
+ DE_ASSERT(!m_testParams.subsampledLoads);
+
+ densityMapImageUsage = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+ densityMapImageViewFlags = (deUint32)VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT;
+ }
+ else if (m_testParams.deferredDensityMap)
+ densityMapImageViewFlags = (deUint32)VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT;
if (m_testParams.makeCopy)
- colorImageUsage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- deUint32 colorImageCreateFlags = m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
-#else
- deUint32 colorImageCreateFlags = 0u;
-#endif
+ colorImageUsage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
- VkExtent3D outputMapImageSize { m_testParams.renderSize.x(), m_testParams.renderSize.y(), 1 };
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ colorImageCreateFlags = 0u;
+ densityMapImageUsage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+ densityMapImageViewFlags = 0u;
+#endif
// Create subsampled color image
prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
- colorMapImageSize, colorImageLayers, m_testParams.colorSamples,
+ colorImageSize, colorImageLayers, m_testParams.colorSamples,
colorImageUsage, queueFamilyIndex, 0u, colorImageViewType,
componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
m_colorImage, m_colorImageAlloc, m_colorImageView);
// Create subsampled color image for resolve operation ( when multisampling is used )
- if( m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+ if (isColorImageMultisampled)
{
prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
- colorMapImageSize, colorImageLayers, VK_SAMPLE_COUNT_1_BIT,
+ colorImageSize, colorImageLayers, VK_SAMPLE_COUNT_1_BIT,
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, queueFamilyIndex, 0u, colorImageViewType,
componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
m_colorResolvedImage, m_colorResolvedImageAlloc, m_colorResolvedImageView);
}
- // create subsampled image copy
+ // Create subsampled image copy
if (m_testParams.makeCopy)
{
prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
- colorMapImageSize, colorImageLayers, m_testParams.colorSamples,
+ colorImageSize, colorImageLayers, m_testParams.colorSamples,
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, queueFamilyIndex, 0u, colorImageViewType,
componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
m_colorCopyImage, m_colorCopyImageAlloc, m_colorCopyImageView);
// Create output image ( data from subsampled color image will be copied into it using sampler with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT )
prepareImageAndImageView(vk, vkDevice, memAlloc, 0u, VK_FORMAT_R8G8B8A8_UNORM,
- outputMapImageSize, 1u, VK_SAMPLE_COUNT_1_BIT,
+ outputImageSize, 1u, VK_SAMPLE_COUNT_1_BIT,
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT, queueFamilyIndex, 0u, VK_IMAGE_VIEW_TYPE_2D,
componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u },
m_outputImage, m_outputImageAlloc, m_outputImageView);
- // Create density map image
- prepareImageAndImageView(vk, vkDevice, memAlloc, 0u, m_testParams.densityMapFormat,
- densityMapImageSize, densityMapImageLayers, VK_SAMPLE_COUNT_1_BIT,
- densityMapImageUsage, queueFamilyIndex, densityMapImageViewCreateFlags, densityImageViewType,
- componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, densityMapImageLayers },
- m_densityMapImage, m_densityMapImageAlloc, m_densityMapImageView);
+ // Create density map image/images
+ for (deUint32 mapIndex = 0; mapIndex < densitiMapCount; ++mapIndex)
+ {
+ Move<VkImage> densityMapImage;
+ de::MovePtr<Allocation> densityMapImageAlloc;
+ Move<VkImageView> densityMapImageView;
+
+ prepareImageAndImageView(vk, vkDevice, memAlloc, 0u, m_testParams.densityMapFormat,
+ densityMapImageSize, densityMapImageLayers, VK_SAMPLE_COUNT_1_BIT,
+ densityMapImageUsage, queueFamilyIndex, densityMapImageViewFlags, densityMapImageViewType,
+ componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, densityMapImageLayers },
+ densityMapImage, densityMapImageAlloc, densityMapImageView);
+
+ m_densityMapImages.push_back(VkImageSp(new Unique<VkImage>(densityMapImage)));
+ m_densityMapImageAllocs.push_back(AllocationSp(densityMapImageAlloc.release()));
+ m_densityMapImageViews.push_back(VkImageViewSp(new Unique<VkImageView>(densityMapImageView)));
+ }
- // create and fill staging buffer, copy its data to density map image
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- if ( !m_testParams.dynamicDensityMap )
+ // Create and fill staging buffer, copy its data to density map image
+ if (!m_testParams.dynamicDensityMap)
{
- tcu::TextureFormat densityMapTextureFormat = vk::mapVkFormat(m_testParams.densityMapFormat);
+ tcu::TextureFormat densityMapTextureFormat = vk::mapVkFormat(m_testParams.densityMapFormat);
VkDeviceSize stagingBufferSize = tcu::getPixelSize(densityMapTextureFormat) * densityMapImageSize.width * densityMapImageSize.height * densityMapImageLayers;
const vk::VkBufferCreateInfo stagingBufferCreateInfo =
{
const vk::VkMemoryRequirements stagingRequirements = vk::getBufferMemoryRequirements(vk, vkDevice, *stagingBuffer);
de::MovePtr<vk::Allocation> stagingAllocation = memAlloc.allocate(stagingRequirements, MemoryRequirement::HostVisible);
VK_CHECK(vk.bindBufferMemory(vkDevice, *stagingBuffer, stagingAllocation->getMemory(), stagingAllocation->getOffset()));
- tcu::PixelBufferAccess stagingBufferAccess = tcu::PixelBufferAccess(densityMapTextureFormat, densityMapImageSize.width, densityMapImageSize.height, densityMapImageLayers, stagingAllocation->getHostPtr());
+ tcu::PixelBufferAccess stagingBufferAccess (densityMapTextureFormat, densityMapImageSize.width, densityMapImageSize.height, densityMapImageLayers, stagingAllocation->getHostPtr());
+ tcu::Vec4 fragmentArea (m_densityValue.x(), m_densityValue.y(), 0.0f, 1.0f);
- tcu::Vec4 fragmentArea { 1.0f / static_cast<float>(testParams.fragmentArea.x()), 1.0f / static_cast<float>(testParams.fragmentArea.y()), 0.0f, 1.0f };
- for (int z = 0; z < stagingBufferAccess.getDepth(); z++)
- for (int y = 0; y < stagingBufferAccess.getHeight(); y++)
- for (int x = 0; x < stagingBufferAccess.getWidth(); x++)
- stagingBufferAccess.setPixel(fragmentArea, x, y, z);
- flushAlloc(vk, vkDevice, *stagingAllocation);
-
- std::vector<VkBufferImageCopy> copyRegions =
+ for (deUint32 mapIndex = 0; mapIndex < densitiMapCount; ++mapIndex)
{
- {
- 0, // VkDeviceSize bufferOffset
- 0, // deUint32 bufferRowLength
- 0, // deUint32 bufferImageHeight
- { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, densityMapImageLayers }, // VkImageSubresourceLayers imageSubresource
- { 0, 0, 0 }, // VkOffset3D imageOffset
- densityMapImageSize // VkExtent3D imageExtent
- }
- };
-
- vk::copyBufferToImage
- (
- vk, vkDevice, m_context.getUniversalQueue(), queueFamilyIndex,
- *stagingBuffer, stagingBufferSize, copyRegions, DE_NULL,
- VK_IMAGE_ASPECT_COLOR_BIT, 1, densityMapImageLayers,
- *m_densityMapImage,
- VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
- VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
- );
+ // Fill staging buffer with one color
+ tcu::clear(stagingBufferAccess, fragmentArea);
+ flushAlloc(vk, vkDevice, *stagingAllocation);
+
+ copyBufferToImage
+ (
+ vk, vkDevice, m_context.getUniversalQueue(), queueFamilyIndex,
+ *stagingBuffer, stagingBufferSize,
+ densityMapImageSize, densityMapImageLayers, **m_densityMapImages[mapIndex]
+ );
+
+ std::swap(fragmentArea.m_data[0], fragmentArea.m_data[1]);
+ }
}
-#endif
- // create a sampler that is able to read from subsampled image
- {
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- deUint32 samplerCreateFlags = m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT;
-#else
- deUint32 samplerCreateFlags = 0u;
-#endif
- const struct VkSamplerCreateInfo samplerInfo
- {
- VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, // sType
- DE_NULL, // pNext
- (VkSamplerCreateFlags)samplerCreateFlags, // flags
- VK_FILTER_NEAREST, // magFilter
- VK_FILTER_NEAREST, // minFilter
- VK_SAMPLER_MIPMAP_MODE_NEAREST, // mipmapMode
- VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // addressModeU
- VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // addressModeV
- VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // addressModeW
- 0.0f, // mipLodBias
- VK_FALSE, // anisotropyEnable
- 1.0f, // maxAnisotropy
- DE_FALSE, // compareEnable
- VK_COMPARE_OP_ALWAYS, // compareOp
- 0.0f, // minLod
- 0.0f, // maxLod
- VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, // borderColor
- VK_FALSE, // unnormalizedCoords
- };
- m_colorSampler = createSampler(vk, vkDevice, &samplerInfo);
- }
+ deUint32 samplerCreateFlags = (deUint32)VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT;
+ if (m_testParams.coarseReconstruction)
+ samplerCreateFlags |= (deUint32)VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT;
+ if (m_testParams.nonSubsampledImages)
+ samplerCreateFlags = 0u;
- // Create render passes
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- if ( testParams.dynamicDensityMap )
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ samplerCreateFlags = 0u;
#endif
- m_renderPassProduceDynamicDensityMap = createRenderPassProduceDynamicDensityMap<AttachmentDescription2, AttachmentReference2, SubpassDescription2, SubpassDependency2, RenderPassCreateInfo2>(vk, vkDevice, testParams);
- m_renderPassProduceSubsampledImage = createRenderPassProduceSubsampledImage<AttachmentDescription2, AttachmentReference2, SubpassDescription2, SubpassDependency2, RenderPassCreateInfo2>(vk, vkDevice, testParams);
- m_renderPassOutputSubsampledImage = createRenderPassOutputSubsampledImage<AttachmentDescription2, AttachmentReference2, SubpassDescription2, SubpassDependency2, RenderPassCreateInfo2>(vk, vkDevice, testParams);
- // Create framebuffers
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- if ( testParams.dynamicDensityMap )
-#endif
- m_framebufferProduceDynamicDensityMap = createFrameBuffer(vk, vkDevice, *m_renderPassProduceDynamicDensityMap, densityMapImageSize.width, densityMapImageSize.height, { *m_densityMapImageView });
+ const struct VkSamplerCreateInfo samplerInfo
+ {
+ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, // sType
+ DE_NULL, // pNext
+ (VkSamplerCreateFlags)samplerCreateFlags, // flags
+ VK_FILTER_NEAREST, // magFilter
+ VK_FILTER_NEAREST, // minFilter
+ VK_SAMPLER_MIPMAP_MODE_NEAREST, // mipmapMode
+ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // addressModeU
+ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // addressModeV
+ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // addressModeW
+ 0.0f, // mipLodBias
+ VK_FALSE, // anisotropyEnable
+ 1.0f, // maxAnisotropy
+ DE_FALSE, // compareEnable
+ VK_COMPARE_OP_ALWAYS, // compareOp
+ 0.0f, // minLod
+ 0.0f, // maxLod
+ VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, // borderColor
+ VK_FALSE, // unnormalizedCoords
+ };
- std::vector<VkImageView> imageViewsProduceSubsampledImage;
- imageViewsProduceSubsampledImage.push_back(*m_colorImageView);
- if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+ // Create a sampler that are able to read from subsampled image
+ // (more than one sampler is needed only for 4 maxDescriptorSetSubsampledSamplers tests)
+ for (deUint32 samplerIndex = 0; samplerIndex < testParams.samplersCount; ++samplerIndex)
+ m_colorSamplers.push_back(VkSamplerSp(new Unique<VkSampler>(createSampler(vk, vkDevice, &samplerInfo))));
+
+ // Create render passes
+ if (testParams.dynamicDensityMap)
+ m_renderPassProduceDynamicDensityMap = createRenderPassProduceDynamicDensityMap(vk, vkDevice, m_viewMask, testParams);
+ m_renderPassProduceSubsampledImage = createRenderPassProduceSubsampledImage(vk, vkDevice, m_viewMask, testParams.makeCopy, false, testParams);
+ if (testParams.subsampledLoads)
+ m_renderPassUpdateSubsampledImage = createRenderPassProduceSubsampledImage(vk, vkDevice, m_viewMask, false, true, testParams);
+ m_renderPassOutputSubsampledImage = createRenderPassOutputSubsampledImage(vk, vkDevice);
+
+ std::vector<VkImageView> imageViewsProduceSubsampledImage = { *m_colorImageView };
+ if (isColorImageMultisampled)
imageViewsProduceSubsampledImage.push_back(*m_colorResolvedImageView);
if (testParams.makeCopy)
imageViewsProduceSubsampledImage.push_back(*m_colorCopyImageView);
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- imageViewsProduceSubsampledImage.push_back(*m_densityMapImageView);
+ imageViewsProduceSubsampledImage.push_back(**m_densityMapImageViews[0]);
+
+ std::vector<VkImageView> imageViewsUpdateSubsampledImage = { *m_colorImageView };
+ if (testParams.subsampledLoads)
+ imageViewsUpdateSubsampledImage.push_back(**m_densityMapImageViews[1]);
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ imageViewsProduceSubsampledImage.pop_back();
+ imageViewsUpdateSubsampledImage.pop_back();
#endif
- m_framebufferProduceSubsampledImage = createFrameBuffer(vk, vkDevice, *m_renderPassProduceSubsampledImage, colorMapImageSize.width, colorMapImageSize.height, imageViewsProduceSubsampledImage);
- m_framebufferOutputSubsampledImage = createFrameBuffer( vk, vkDevice, *m_renderPassOutputSubsampledImage, outputMapImageSize.width, outputMapImageSize.height, { *m_outputImageView } );
+ // Create framebuffers
+ if (testParams.dynamicDensityMap)
+ {
+ m_framebufferProduceDynamicDensityMap = createFrameBuffer(vk, vkDevice,
+ *m_renderPassProduceDynamicDensityMap,
+ densityMapImageSize,
+ { **m_densityMapImageViews[0] });
+ }
+ m_framebufferProduceSubsampledImage = createFrameBuffer(vk, vkDevice,
+ *m_renderPassProduceSubsampledImage,
+ colorImageSize,
+ imageViewsProduceSubsampledImage);
+ if (testParams.subsampledLoads)
+ {
+ m_framebufferUpdateSubsampledImage = createFrameBuffer(vk, vkDevice,
+ *m_renderPassUpdateSubsampledImage,
+ colorImageSize,
+ imageViewsUpdateSubsampledImage);
+ }
+ m_framebufferOutputSubsampledImage = createFrameBuffer(vk, vkDevice,
+ *m_renderPassOutputSubsampledImage,
+ outputImageSize,
+ { *m_outputImageView });
// Create pipeline layout for subpasses that do not use any descriptors
{
- const VkPipelineLayoutCreateInfo pipelineLayoutParams =
+ const VkPipelineLayoutCreateInfo pipelineLayoutParams =
{
VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, // VkStructureType sType;
DE_NULL, // const void* pNext;
m_pipelineLayoutNoDescriptors = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
}
- // Create pipeline layout for subpass that copies data
- if(m_testParams.makeCopy)
+ // Create pipeline layout for subpass that copies data or resamples subsampled image
+ if (m_testParams.makeCopy || m_testParams.subsampledLoads)
{
- m_descriptorSetLayoutCopySubsampledImage =
+ m_descriptorSetLayoutOperateOnSubsampledImage =
DescriptorSetLayoutBuilder()
.addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT, DE_NULL)
.build(vk, vkDevice);
// Create and bind descriptor set
- m_descriptorPoolCopySubsampledImage =
+ m_descriptorPoolOperateOnSubsampledImage =
DescriptorPoolBuilder()
.addType(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1u)
.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
- m_pipelineLayoutCopySubsampledImage = makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutCopySubsampledImage);
-
- m_descriptorSetCopySubsampledImage = makeDescriptorSet(vk, vkDevice, *m_descriptorPoolCopySubsampledImage, *m_descriptorSetLayoutCopySubsampledImage);
+ m_pipelineLayoutOperateOnSubsampledImage = makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutOperateOnSubsampledImage);
+ m_descriptorSetOperateOnSubsampledImage = makeDescriptorSet(vk, vkDevice, *m_descriptorPoolOperateOnSubsampledImage, *m_descriptorSetLayoutOperateOnSubsampledImage);
- const VkDescriptorImageInfo inputImageInfo =
+ const VkDescriptorImageInfo inputImageInfo =
{
DE_NULL, // VkSampleri sampler;
*m_colorImageView, // VkImageView imageView;
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout imageLayout;
};
DescriptorSetUpdateBuilder()
- .writeSingle(*m_descriptorSetCopySubsampledImage, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, &inputImageInfo)
+ .writeSingle(*m_descriptorSetOperateOnSubsampledImage, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, &inputImageInfo)
.update(vk, vkDevice);
}
- // Create pipeline layout for last render pass ( output subsampled image )
+ // Create pipeline layout for last render pass (output subsampled image)
{
- m_descriptorSetLayoutOutputSubsampledImage =
- DescriptorSetLayoutBuilder()
- .addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, &(m_colorSampler.get()))
- .build(vk, vkDevice);
-
- // Create and bind descriptor set
- m_descriptorPoolOutputSubsampledImage =
- DescriptorPoolBuilder()
- .addType(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1u)
- .build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+ DescriptorSetLayoutBuilder descriptorSetLayoutBuilder;
+ DescriptorPoolBuilder descriptorPoolBuilder;
+ for (deUint32 samplerIndex = 0; samplerIndex < testParams.samplersCount; ++samplerIndex)
+ {
+ descriptorSetLayoutBuilder.addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, &(*m_colorSamplers[samplerIndex]).get());
+ descriptorPoolBuilder.addType(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, samplerIndex + 1u);
+ }
- m_pipelineLayoutOutputSubsampledImage = makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutOutputSubsampledImage);
+ m_descriptorSetLayoutOutputSubsampledImage = descriptorSetLayoutBuilder.build(vk, vkDevice);
+ m_descriptorPoolOutputSubsampledImage = descriptorPoolBuilder.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+ m_pipelineLayoutOutputSubsampledImage = makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutOutputSubsampledImage);
+ m_descriptorSetOutputSubsampledImage = makeDescriptorSet(vk, vkDevice, *m_descriptorPoolOutputSubsampledImage, *m_descriptorSetLayoutOutputSubsampledImage);
- m_descriptorSetOutputSubsampledImage = makeDescriptorSet(vk, vkDevice, *m_descriptorPoolOutputSubsampledImage, *m_descriptorSetLayoutOutputSubsampledImage);
+ VkImageView srcImageView = *m_colorImageView;
+ if (isColorImageMultisampled)
+ srcImageView = *m_colorResolvedImageView;
+ else if (m_testParams.makeCopy)
+ srcImageView = *m_colorCopyImageView;
- VkImageView srcImageView = (m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT) ? *m_colorResolvedImageView : ((m_testParams.makeCopy) ? *m_colorCopyImageView : *m_colorImageView);
- const VkDescriptorImageInfo inputImageInfo =
+ const VkDescriptorImageInfo inputImageInfo =
{
DE_NULL, // VkSampleri sampler;
srcImageView, // VkImageView imageView;
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout imageLayout;
};
- DescriptorSetUpdateBuilder()
- .writeSingle(*m_descriptorSetOutputSubsampledImage, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &inputImageInfo)
- .update(vk, vkDevice);
- }
- // load vertex and fragment shaders
+ DescriptorSetUpdateBuilder descriptorSetUpdateBuilder;
+ for (deUint32 samplerIndex = 0; samplerIndex < testParams.samplersCount; ++samplerIndex)
+ descriptorSetUpdateBuilder.writeSingle(*m_descriptorSetOutputSubsampledImage, DescriptorSetUpdateBuilder::Location::binding(samplerIndex), VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &inputImageInfo);
+ descriptorSetUpdateBuilder.update(vk, vkDevice);
+ }
- m_vertexCommonShaderModule = createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_vert"), 0);
- m_fragmentShaderModuleProduceSubsampledImage = createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_produce"), 0);
+ // Load vertex and fragment shaders
+ auto& bc = m_context.getBinaryCollection();
+ m_vertexCommonShaderModule = createShaderModule(vk, vkDevice, bc.get("vert"), 0);
+ m_fragmentShaderModuleProduceSubsampledImage = createShaderModule(vk, vkDevice, bc.get("frag_produce_subsampled"), 0);
if (m_testParams.makeCopy)
{
- if (m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
- m_fragmentShaderModuleCopySubsampledImage = createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_copy_ms"), 0);
- else
- m_fragmentShaderModuleCopySubsampledImage = createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_copy"), 0);
+ const char* moduleName = isColorImageMultisampled ? "frag_copy_subsampled_ms" : "frag_copy_subsampled";
+ m_fragmentShaderModuleCopySubsampledImage = createShaderModule(vk, vkDevice, bc.get(moduleName), 0);
+ }
+ if (m_testParams.subsampledLoads)
+ {
+ const char* moduleName = "frag_update_subsampled";
+ m_fragmentShaderModuleUpdateSubsampledImage = createShaderModule(vk, vkDevice, bc.get(moduleName), 0);
}
- if( m_testParams.multiView)
- m_fragmentShaderModuleOutputSubsampledImage = createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_output_2darray"), 0);
- else
- m_fragmentShaderModuleOutputSubsampledImage = createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_output_2d"), 0);
+ const char* moduleName = (m_testParams.viewCount > 1) ? "frag_output_2darray" : "frag_output_2d";
+ m_fragmentShaderModuleOutputSubsampledImage = createShaderModule(vk, vkDevice, bc.get(moduleName), 0);
// Create pipelines
{
- const VkVertexInputBindingDescription vertexInputBindingDescription =
+ const VkVertexInputBindingDescription vertexInputBindingDescription =
{
0u, // deUint32 binding;
sizeof(Vertex4RGBA), // deUint32 strideInBytes;
VK_VERTEX_INPUT_RATE_VERTEX // VkVertexInputStepRate inputRate;
};
- std::vector<VkVertexInputAttributeDescription> vertexInputAttributeDescriptions =
+ std::vector<VkVertexInputAttributeDescription> vertexInputAttributeDescriptions =
{
{ 0u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, 0u },
{ 1u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, (deUint32)(sizeof(float) * 4) },
{ 2u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, (deUint32)(sizeof(float) * 8) }
};
- const VkPipelineVertexInputStateCreateInfo vertexInputStateParams =
+ const VkPipelineVertexInputStateCreateInfo vertexInputStateParams =
{
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // VkStructureType sType;
DE_NULL, // const void* pNext;
vertexInputAttributeDescriptions.data() // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
};
- const VkPipelineMultisampleStateCreateInfo multisampleStateCreateInfo =
+ const VkPipelineMultisampleStateCreateInfo multisampleStateCreateInfo
{
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, // VkStructureType sType
DE_NULL, // const void* pNext
VK_FALSE // VkBool32 alphaToOneEnable
};
- const std::vector<VkViewport> viewportsProduceDynamicDensityMap { makeViewport(densityMapImageSize.width, densityMapImageSize.height) };
- const std::vector<VkRect2D> scissorsProduceDynamicDensityMap { makeRect2D(densityMapImageSize.width, densityMapImageSize.height) };
- const std::vector<VkViewport> viewportsProduceSubsampledImage { makeViewport(colorMapImageSize.width, colorMapImageSize.height) };
- const std::vector<VkRect2D> scissorsProduceSubsampledImage { makeRect2D(colorMapImageSize.width, colorMapImageSize.height) };
- const std::vector<VkViewport> viewportsCopySubsampledImage { makeViewport(colorMapImageSize.width, colorMapImageSize.height) };
- const std::vector<VkRect2D> scissorsCopySubsampledImage { makeRect2D(colorMapImageSize.width, colorMapImageSize.height) };
- const std::vector<VkViewport> viewportsOutputSubsampledImage { makeViewport(outputMapImageSize.width, outputMapImageSize.height) };
- const std::vector<VkRect2D> scissorsOutputSubsampledImage { makeRect2D(outputMapImageSize.width, outputMapImageSize.height) };
+ const std::vector<VkViewport> viewportsProduceDynamicDensityMap { makeViewport(densityMapImageSize.width, densityMapImageSize.height) };
+ const std::vector<VkRect2D> scissorsProduceDynamicDensityMap { makeRect2D(densityMapImageSize.width, densityMapImageSize.height) };
+ const std::vector<VkViewport> viewportsSubsampledImage { makeViewport(colorImageSize.width, colorImageSize.height) };
+ const std::vector<VkRect2D> scissorsSubsampledImage { makeRect2D(colorImageSize.width, colorImageSize.height) };
+ const std::vector<VkViewport> viewportsOutputSubsampledImage { makeViewport(outputImageSize.width, outputImageSize.height) };
+ const std::vector<VkRect2D> scissorsOutputSubsampledImage { makeRect2D(outputImageSize.width, outputImageSize.height) };
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
if (testParams.dynamicDensityMap)
-#endif
m_graphicsPipelineProduceDynamicDensityMap = makeGraphicsPipeline(vk, // const DeviceInterface& vk
vkDevice, // const VkDevice device
*m_pipelineLayoutNoDescriptors, // const VkPipelineLayout pipelineLayout
DE_NULL, // const VkShaderModule geometryShaderModule
*m_fragmentShaderModuleProduceSubsampledImage, // const VkShaderModule fragmentShaderModule
*m_renderPassProduceSubsampledImage, // const VkRenderPass renderPass
- viewportsProduceSubsampledImage, // const std::vector<VkViewport>& viewports
- scissorsProduceSubsampledImage, // const std::vector<VkRect2D>& scissors
+ viewportsSubsampledImage, // const std::vector<VkViewport>& viewports
+ scissorsSubsampledImage, // const std::vector<VkRect2D>& scissors
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, // const VkPrimitiveTopology topology
0u, // const deUint32 subpass
0u, // const deUint32 patchControlPoints
&vertexInputStateParams, // const VkPipelineVertexInputStateCreateInfo* vertexInputStateCreateInfo
- DE_NULL, // const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo,
+ DE_NULL, // const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
&multisampleStateCreateInfo); // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
-
if(m_testParams.makeCopy)
- m_graphicsPipelineCopySubsampledImage = makeGraphicsPipeline(vk, // const DeviceInterface& vk
+ m_graphicsPipelineCopySubsampledImage = makeGraphicsPipeline(vk, // const DeviceInterface& vk
vkDevice, // const VkDevice device
- *m_pipelineLayoutCopySubsampledImage, // const VkPipelineLayout pipelineLayout
+ *m_pipelineLayoutOperateOnSubsampledImage, // const VkPipelineLayout pipelineLayout
*m_vertexCommonShaderModule, // const VkShaderModule vertexShaderModule
DE_NULL, // const VkShaderModule tessellationControlModule
DE_NULL, // const VkShaderModule tessellationEvalModule
DE_NULL, // const VkShaderModule geometryShaderModule
*m_fragmentShaderModuleCopySubsampledImage, // const VkShaderModule fragmentShaderModule
*m_renderPassProduceSubsampledImage, // const VkRenderPass renderPass
- viewportsProduceSubsampledImage, // const std::vector<VkViewport>& viewports
- scissorsProduceSubsampledImage, // const std::vector<VkRect2D>& scissors
+ viewportsSubsampledImage, // const std::vector<VkViewport>& viewports
+ scissorsSubsampledImage, // const std::vector<VkRect2D>& scissors
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, // const VkPrimitiveTopology topology
1u, // const deUint32 subpass
0u, // const deUint32 patchControlPoints
&vertexInputStateParams, // const VkPipelineVertexInputStateCreateInfo* vertexInputStateCreateInfo
- DE_NULL, // const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo,
+ DE_NULL, // const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
+ &multisampleStateCreateInfo); // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
+ if (m_testParams.subsampledLoads)
+ m_graphicsPipelineUpdateSubsampledImage = makeGraphicsPipeline(vk, // const DeviceInterface& vk
+ vkDevice, // const VkDevice device
+ *m_pipelineLayoutOperateOnSubsampledImage, // const VkPipelineLayout pipelineLayout
+ *m_vertexCommonShaderModule, // const VkShaderModule vertexShaderModule
+ DE_NULL, // const VkShaderModule tessellationControlModule
+ DE_NULL, // const VkShaderModule tessellationEvalModule
+ DE_NULL, // const VkShaderModule geometryShaderModule
+ *m_fragmentShaderModuleUpdateSubsampledImage, // const VkShaderModule fragmentShaderModule
+ *m_renderPassUpdateSubsampledImage, // const VkRenderPass renderPass
+ viewportsSubsampledImage, // const std::vector<VkViewport>& viewports
+ scissorsSubsampledImage, // const std::vector<VkRect2D>& scissors
+ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, // const VkPrimitiveTopology topology
+ 0u, // const deUint32 subpass
+ 0u, // const deUint32 patchControlPoints
+ &vertexInputStateParams, // const VkPipelineVertexInputStateCreateInfo* vertexInputStateCreateInfo
+ DE_NULL, // const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
&multisampleStateCreateInfo); // const VkPipelineMultisampleStateCreateInfo* multisampleStateCreateInfo
m_graphicsPipelineOutputSubsampledImage = makeGraphicsPipeline(vk, // const DeviceInterface& vk
}
// Create vertex buffers
- m_vertices = createFullscreenQuadRG();
- m_verticesDDM = createFullscreenQuadDensity(1.0f / static_cast<float>(m_testParams.fragmentArea.x()), 1.0f / static_cast<float>(m_testParams.fragmentArea.y()));
- m_verticesOutput = createFullscreenMeshOutput(m_testParams.multiView);
+ const tcu::Vec2 densityX(m_densityValue.x());
+ const tcu::Vec2 densityY(m_densityValue.y());
+ m_vertices = createFullscreenMesh(1, {0.0f, 1.0f}, {0.0f, 1.0f}); // create fullscreen quad with gradient
+ if (testParams.dynamicDensityMap)
+ m_verticesDDM = createFullscreenMesh(1, densityX, densityY); // create fullscreen quad with single color
+ m_verticesOutput = createFullscreenMesh(m_testParams.viewCount, { 0.0f, 0.0f }, { 0.0f, 0.0f }); // create fullscreen mesh with black color
createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_vertices, m_vertexBuffer, m_vertexBufferAlloc);
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
if (testParams.dynamicDensityMap)
-#endif
createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_verticesDDM, m_vertexBufferDDM, m_vertexBufferAllocDDM);
createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_verticesOutput, m_vertexBufferOutput, m_vertexBufferOutputAlloc);
m_cmdPool = createCommandPool(vk, vkDevice, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
m_cmdBuffer = allocateCommandBuffer(vk, vkDevice, *m_cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
- const typename RenderpassSubpass2::SubpassBeginInfo subpassBeginInfo(DE_NULL, VK_SUBPASS_CONTENTS_INLINE);
- const typename RenderpassSubpass2::SubpassEndInfo subpassEndInfo(DE_NULL);
- const VkDeviceSize vertexBufferOffset = 0;
- std::vector<VkClearValue> attachmentClearValuesDDM = { makeClearValueColorF32(1.0f, 1.0f, 1.0f, 1.0f) };
- std::vector<VkClearValue> attachmentClearValues = { makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f) };
- if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
- attachmentClearValues.push_back(makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f));
- if (testParams.makeCopy)
- attachmentClearValues.push_back(makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f));
+ typedef RenderpassSubpass2 RPS2;
+ const typename RPS2::SubpassBeginInfo subpassBeginInfo (DE_NULL, VK_SUBPASS_CONTENTS_INLINE);
+ const typename RPS2::SubpassEndInfo subpassEndInfo (DE_NULL);
+ const VkDeviceSize vertexBufferOffset = 0;
+ const VkClearValue attachmentClearValue = makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f);
+ const deUint32 attachmentCount = 1 + testParams.makeCopy + isColorImageMultisampled;
+ const std::vector<VkClearValue> attachmentClearValues (attachmentCount, attachmentClearValue);
beginCommandBuffer(vk, *m_cmdBuffer, 0u);
- // first render pass - render dynamic density map
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- if ( testParams.dynamicDensityMap )
-#endif
+ // First render pass - render dynamic density map
+ if (testParams.dynamicDensityMap)
{
- const VkRenderPassBeginInfo renderPassBeginInfoProduceDynamicDensityMap =
+ std::vector<VkClearValue> attachmentClearValuesDDM { makeClearValueColorF32(1.0f, 1.0f, 1.0f, 1.0f) };
+ const VkRenderPassBeginInfo renderPassBeginInfoProduceDynamicDensityMap
{
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType;
DE_NULL, // const void* pNext;
static_cast<deUint32>(attachmentClearValuesDDM.size()), // uint32_t clearValueCount;
attachmentClearValuesDDM.data() // const VkClearValue* pClearValues;
};
- RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceDynamicDensityMap, &subpassBeginInfo);
+ RPS2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceDynamicDensityMap, &subpassBeginInfo);
vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineProduceDynamicDensityMap);
vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBufferDDM.get(), &vertexBufferOffset);
vk.cmdDraw(*m_cmdBuffer, (deUint32)m_verticesDDM.size(), 1, 0, 0);
- RenderpassSubpass2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
+ RPS2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
}
- // render subsampled image
- const VkRenderPassBeginInfo renderPassBeginInfoProduceSubsampledImage =
+ // Render subsampled image
+ const VkRenderPassBeginInfo renderPassBeginInfoProduceSubsampledImage
{
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType;
DE_NULL, // const void* pNext;
*m_renderPassProduceSubsampledImage, // VkRenderPass renderPass;
*m_framebufferProduceSubsampledImage, // VkFramebuffer framebuffer;
- makeRect2D(colorMapImageSize.width, colorMapImageSize.height), // VkRect2D renderArea;
+ makeRect2D(colorImageSize.width, colorImageSize.height), // VkRect2D renderArea;
static_cast<deUint32>(attachmentClearValues.size()), // uint32_t clearValueCount;
attachmentClearValues.data() // const VkClearValue* pClearValues;
};
-
- RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceSubsampledImage, &subpassBeginInfo);
+ RPS2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceSubsampledImage, &subpassBeginInfo);
vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineProduceSubsampledImage);
vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
if (testParams.makeCopy)
{
- RenderpassSubpass2::cmdNextSubpass(vk, *m_cmdBuffer, &subpassBeginInfo, &subpassEndInfo);
+ RPS2::cmdNextSubpass(vk, *m_cmdBuffer, &subpassBeginInfo, &subpassEndInfo);
vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineCopySubsampledImage);
- vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutCopySubsampledImage, 0, 1, &m_descriptorSetCopySubsampledImage.get(), 0, DE_NULL);
+ vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutOperateOnSubsampledImage, 0, 1, &m_descriptorSetOperateOnSubsampledImage.get(), 0, DE_NULL);
vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
}
- RenderpassSubpass2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
+ RPS2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
- // copy subsampled image to ordinary image using sampler that is able to read from subsampled images( subsampled image cannot be copied using vkCmdCopyImageToBuffer )
- const VkRenderPassBeginInfo renderPassBeginInfoOutputSubsampledImage =
+ // Resample subsampled image
+ if (testParams.subsampledLoads)
+ {
+ const VkRenderPassBeginInfo renderPassBeginInfoUpdateSubsampledImage
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ *m_renderPassUpdateSubsampledImage, // VkRenderPass renderPass;
+ *m_framebufferUpdateSubsampledImage, // VkFramebuffer framebuffer;
+ makeRect2D(colorImageSize.width, colorImageSize.height), // VkRect2D renderArea;
+ 0u, // uint32_t clearValueCount;
+ DE_NULL // const VkClearValue* pClearValues;
+ };
+ RPS2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoUpdateSubsampledImage, &subpassBeginInfo);
+ vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineUpdateSubsampledImage);
+ vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutOperateOnSubsampledImage, 0, 1, &m_descriptorSetOperateOnSubsampledImage.get(), 0, DE_NULL);
+ vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
+ vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
+ RPS2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
+ }
+
+ // Copy subsampled image to normal image using sampler that is able to read from subsampled images
+ // (subsampled image cannot be copied using vkCmdCopyImageToBuffer)
+ const VkRenderPassBeginInfo renderPassBeginInfoOutputSubsampledImage
{
VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType;
DE_NULL, // const void* pNext;
*m_renderPassOutputSubsampledImage, // VkRenderPass renderPass;
*m_framebufferOutputSubsampledImage, // VkFramebuffer framebuffer;
- makeRect2D(outputMapImageSize.width, outputMapImageSize.height), // VkRect2D renderArea;
+ makeRect2D(outputImageSize.width, outputImageSize.height), // VkRect2D renderArea;
static_cast<deUint32>(attachmentClearValues.size()), // uint32_t clearValueCount;
attachmentClearValues.data() // const VkClearValue* pClearValues;
};
- RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoOutputSubsampledImage, &subpassBeginInfo);
+ RPS2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoOutputSubsampledImage, &subpassBeginInfo);
vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineOutputSubsampledImage);
vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutOutputSubsampledImage, 0, 1, &m_descriptorSetOutputSubsampledImage.get(), 0, DE_NULL);
vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBufferOutput.get(), &vertexBufferOffset);
vk.cmdDraw(*m_cmdBuffer, (deUint32)m_verticesOutput.size(), 1, 0, 0);
- RenderpassSubpass2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
+ RPS2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
endCommandBuffer(vk, *m_cmdBuffer);
}
tcu::TestStatus FragmentDensityMapTestInstance::iterate (void)
{
- const DeviceInterface& vk = m_context.getDeviceInterface();
- const VkDevice vkDevice = m_context.getDevice();
- const VkQueue queue = m_context.getUniversalQueue();
+ const DeviceInterface& vk = m_context.getDeviceInterface();
+ const VkDevice vkDevice = m_context.getDevice();
+ const VkQueue queue = m_context.getUniversalQueue();
submitCommandsAndWait(vk, vkDevice, queue, m_cmdBuffer.get());
+ // approximations used when coarse reconstruction is specified are implementation defined
+ if (m_testParams.coarseReconstruction)
+ return tcu::TestStatus::pass("Pass");
+
return verifyImage();
}
tcu::TestStatus FragmentDensityMapTestInstance::verifyImage (void)
{
- const DeviceInterface& vk = m_context.getDeviceInterface();
- const VkDevice vkDevice = m_context.getDevice();
- const VkQueue queue = m_context.getUniversalQueue();
- const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
- SimpleAllocator memAlloc (vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
- tcu::UVec2 renderSize { m_testParams.renderSize.x(), m_testParams.renderSize.y() };
- de::UniquePtr<tcu::TextureLevel> outputImage (pipeline::readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, memAlloc, *m_outputImage, VK_FORMAT_R8G8B8A8_UNORM, renderSize).release());
- const tcu::ConstPixelBufferAccess& outputAccess = outputImage->getAccess();
- tcu::TestLog& log = m_context.getTestContext().getLog();
-
- // log images
+ const DeviceInterface& vk = m_context.getDeviceInterface();
+ const VkDevice vkDevice = m_context.getDevice();
+ const VkQueue queue = m_context.getUniversalQueue();
+ const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
+ SimpleAllocator memAlloc (vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
+ tcu::UVec2 renderSize (m_renderSize.x(), m_renderSize.y());
+ de::UniquePtr<tcu::TextureLevel> outputImage (pipeline::readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, memAlloc, *m_outputImage, VK_FORMAT_R8G8B8A8_UNORM, renderSize).release());
+ const tcu::ConstPixelBufferAccess& outputAccess (outputImage->getAccess());
+ tcu::TestLog& log (m_context.getTestContext().getLog());
+
+ // Log images
log << tcu::TestLog::ImageSet("Result", "Result images")
<< tcu::TestLog::Image("Rendered", "Rendered output image", outputAccess)
<< tcu::TestLog::EndImageSet;
- deUint32 colorCountCoeff = m_testParams.multiView ? 2u : 1u;
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
- deUint32 estimatedColorCount = colorCountCoeff * m_testParams.fragmentArea.x() * m_testParams.fragmentArea.y();
-#else
- deUint32 estimatedColorCount = colorCountCoeff;
+ deUint32 estimatedColorCount = m_testParams.viewCount * m_testParams.fragmentArea.x() * m_testParams.fragmentArea.y();
+ float densityMult = m_densityValue.x() * m_densityValue.y();
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+ estimatedColorCount = m_testParams.viewCount + 2;
+ densityMult = 0.0f;
#endif
- tcu::Vec2 density{
- 1.0f / static_cast<float>(m_testParams.fragmentArea.x()),
- 1.0f / static_cast<float>(m_testParams.fragmentArea.y())
- };
- float densityMult = density.x() * density.y();
- // create histogram of all image colors, check the value of inverted FragSizeEXT
+ // Create histogram of all image colors, check the value of inverted FragSizeEXT
std::map<tcu::Vec4, deUint32, Vec4Sorter> colorCount;
for (int y = 0; y < outputAccess.getHeight(); y++)
{
for (int x = 0; x < outputAccess.getWidth(); x++)
{
- tcu::Vec4 outputColor = outputAccess.getPixel(x, y);
- float densityClamped = outputColor.z() * outputColor.w();
+ tcu::Vec4 outputColor = outputAccess.getPixel(x, y);
+ float densityClamped = outputColor.z() * outputColor.w();
+
if ((densityClamped + 0.01) < densityMult)
return tcu::TestStatus::fail("Wrong value of FragSizeEXT variable");
+
auto it = colorCount.find(outputColor);
if (it == end(colorCount))
it = colorCount.insert({ outputColor, 0u }).first;
}
}
- // check if color count is the same as estimated one
+ // Check if color count is the same as estimated one
for (const auto& color : colorCount)
{
if (color.second > estimatedColorCount)
tcu::TestCaseGroup* createFragmentDensityMapTests (tcu::TestContext& testCtx)
{
- de::MovePtr<tcu::TestCaseGroup> fdmTests (new tcu::TestCaseGroup(testCtx, "fragment_density_map", "VK_EXT_fragment_density_map extension tests"));
+ de::MovePtr<tcu::TestCaseGroup> fdmTests(new tcu::TestCaseGroup(testCtx, "fragment_density_map", "VK_EXT_fragment_density_map and VK_EXT_fragment_density_map2 extensions tests"));
const struct
{
- std::string name;
- bool multiview;
+ std::string name;
+ deUint32 viewCount;
} views[] =
{
- { "single_view", false },
- { "multi_view", true }
+ { "1_view", 1 },
+ { "2_views", 2 },
+ { "4_views", 4 },
+ { "6_views", 6 },
};
const struct
{
- std::string name;
- bool makeCopy;
+ std::string name;
+ bool makeCopy;
} renders[] =
{
{ "render", false },
const struct
{
- std::string name;
- float renderSizeToDensitySize;
+ std::string name;
+ float renderSizeToDensitySize;
} sizes[] =
{
{ "divisible_density_size", 4.0f },
for (const auto& view : views)
{
- de::MovePtr<tcu::TestCaseGroup> viewGroup(new tcu::TestCaseGroup(testCtx, view.name.c_str(), ""));
+ de::MovePtr<tcu::TestCaseGroup> viewGroup(new tcu::TestCaseGroup(testCtx, view.name.c_str(), ""));
for (const auto& render : renders)
{
- de::MovePtr<tcu::TestCaseGroup> renderGroup(new tcu::TestCaseGroup(testCtx, render.name.c_str(), ""));
+ de::MovePtr<tcu::TestCaseGroup> renderGroup(new tcu::TestCaseGroup(testCtx, render.name.c_str(), ""));
for (const auto& size : sizes)
{
- de::MovePtr<tcu::TestCaseGroup> sizeGroup(new tcu::TestCaseGroup(testCtx, size.name.c_str(), ""));
+ de::MovePtr<tcu::TestCaseGroup> sizeGroup(new tcu::TestCaseGroup(testCtx, size.name.c_str(), ""));
for (const auto& sample : samples)
{
- de::MovePtr<tcu::TestCaseGroup> sampleGroup(new tcu::TestCaseGroup(testCtx, sample.name.c_str(), ""));
+ de::MovePtr<tcu::TestCaseGroup> sampleGroup(new tcu::TestCaseGroup(testCtx, sample.name.c_str(), ""));
for (const auto& area : fragmentArea)
{
std::stringstream str;
str << "_" << area.x() << "_" << area.y();
- sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_subsampled") + str.str(), "", TestParams(false, false, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
- sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_subsampled") + str.str(), "", TestParams(true, false, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
- sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_nonsubsampled") + str.str(), "", TestParams(false, true, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
- sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_nonsubsampled") + str.str(), "", TestParams(true, true, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
+
+ TestParams params
+ {
+ false, // bool dynamicDensityMap;
+ false, // bool deferredDensityMap;
+ false, // bool nonSubsampledImages;
+ false, // bool subsampledLoads;
+ false, // bool coarseReconstruction;
+ 1, // deUint32 samplersCount;
+ view.viewCount, // deUint32 viewCount;
+ render.makeCopy, // bool makeCopy;
+ size.renderSizeToDensitySize, // float renderMultiplier;
+ sample.samples, // VkSampleCountFlagBits colorSamples;
+ area, // tcu::UVec2 fragmentArea;
+ { 16, 16 }, // tcu::UVec2 densityMapSize;
+ VK_FORMAT_R8G8_UNORM // VkFormat densityMapFormat;
+ };
+
+ sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_subsampled") + str.str(), "", params));
+ params.deferredDensityMap = true;
+ sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("deferred_subsampled") + str.str(), "", params));
+ params.deferredDensityMap = false;
+ params.dynamicDensityMap = true;
+ sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_subsampled") + str.str(), "", params));
+
+ // generate nonsubsampled tests just for single view and double view cases
+ if (view.viewCount < 3)
+ {
+ params.nonSubsampledImages = true;
+ sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_nonsubsampled") + str.str(), "", params));
+ params.deferredDensityMap = true;
+ sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("deferred_nonsubsampled") + str.str(), "", params));
+ params.deferredDensityMap = false;
+ params.dynamicDensityMap = true;
+ sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_nonsubsampled") + str.str(), "", params));
+ }
}
sizeGroup->addChild(sampleGroup.release());
}
}
fdmTests->addChild(viewGroup.release());
}
+
+ const struct
+ {
+ std::string name;
+ deUint32 count;
+ } subsampledSamplers[] =
+ {
+ { "2_subsampled_samplers", 2 },
+ { "4_subsampled_samplers", 4 },
+ { "6_subsampled_samplers", 6 },
+ { "8_subsampled_samplers", 8 }
+ };
+
+ de::MovePtr<tcu::TestCaseGroup> propertiesGroup(new tcu::TestCaseGroup(testCtx, "properties", ""));
+ for (const auto& sampler : subsampledSamplers)
+ {
+ TestParams params
+ {
+ false, // bool dynamicDensityMap;
+ false, // bool deferredDensityMap;
+ false, // bool nonSubsampledImages;
+ false, // bool subsampledLoads;
+ false, // bool coarseReconstruction;
+ sampler.count, // deUint32 samplersCount;
+ 1, // deUint32 viewCount;
+ false, // bool makeCopy;
+ 4.0f, // float renderMultiplier;
+ VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits colorSamples;
+ { 2, 2 }, // tcu::UVec2 fragmentArea;
+ { 16, 16 }, // tcu::UVec2 densityMapSize;
+ VK_FORMAT_R8G8_UNORM // VkFormat densityMapFormat;
+ };
+ propertiesGroup->addChild(new FragmentDensityMapTest(testCtx, sampler.name, "", params));
+ }
+ TestParams params
+ {
+ false, // bool dynamicDensityMap;
+ false, // bool deferredDensityMap;
+ false, // bool nonSubsampledImages;
+ true, // bool subsampledLoads;
+ false, // bool coarseReconstruction;
+ 1, // deUint32 samplersCount;
+ 2, // deUint32 viewCount;
+ false, // bool makeCopy;
+ 4.0f, // float renderMultiplier;
+ VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits colorSamples;
+ { 1, 2 }, // tcu::UVec2 fragmentArea;
+ { 16, 16 }, // tcu::UVec2 densityMapSize;
+ VK_FORMAT_R8G8_UNORM // VkFormat densityMapFormat;
+ };
+ propertiesGroup->addChild(new FragmentDensityMapTest(testCtx, "subsampled_loads", "", params));
+ params.subsampledLoads = false;
+ params.coarseReconstruction = true;
+ propertiesGroup->addChild(new FragmentDensityMapTest(testCtx, "subsampled_coarse_reconstruction", "", params));
+ fdmTests->addChild(propertiesGroup.release());
+
return fdmTests.release();
}
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.depth_max_unused_resolve
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max_unused_resolve
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.properties.2_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.4_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.6_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.8_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.subsampled_loads
+dEQP-VK.renderpass2.fragment_density_map.properties.subsampled_coarse_reconstruction
dEQP-VK.ubo.2_level_array.std140.float.vertex
dEQP-VK.ubo.2_level_array.std140.float.fragment
dEQP-VK.ubo.2_level_array.std140.float.both
extNameUpper = extensionName.upper()
extNameUpper = extNameUpper.replace("VK_INTEL_SHADER_INTEGER_FUNCTIONS2", "VK_INTEL_SHADER_INTEGER_FUNCTIONS_2")
extNameUpper = extNameUpper.replace("VK_EXT_ROBUSTNESS2", "VK_EXT_ROBUSTNESS_2")
+ extNameUpper = extNameUpper.replace("VK_EXT_FRAGMENT_DENSITY_MAP2", "VK_EXT_FRAGMENT_DENSITY_MAP_2")
+ extNameUpper = extNameUpper.replace("VK_AMD_SHADER_CORE_PROPERTIES2", "VK_AMD_SHADER_CORE_PROPERTIES_2")
# SPEC_VERSION enums
if definition[0].startswith(extNameUpper) and definition[1].isdigit():
return False
'VkPhysicalDeviceBufferDeviceAddressFeaturesEXT',
'VkPhysicalDeviceBufferDeviceAddressFeatures',
'VkPhysicalDeviceDescriptorIndexingFeatures',
- 'VkPhysicalDeviceTimelineSemaphoreFeatures'
+ 'VkPhysicalDeviceTimelineSemaphoreFeatures',
+ 'VkPhysicalDeviceFragmentDensityMapFeaturesEXT',
+ 'VkPhysicalDeviceFragmentDensityMapFeatures2EXT'
]
# helper class used to encapsulate all data needed during generation
class StructureDetail:
def __init__ (self, name):
- nameResult = re.search('(.*)Features(.*)', name[len('VkPhysicalDevice'):])
- nameSplit = re.findall(r'[1-9A-Z]+(?:[a-z1-9]+|[A-Z]*(?=[A-Z]|$))', nameResult.group(1))
- nameSplitUp = map(str.upper, nameSplit)
- postfix = '' if (len(nameResult.group(2)) == 0) else '_' + nameResult.group(2)
+ nameResult = re.search('(.*)Features(.*)', name[len('VkPhysicalDevice'):])
+ nameSplit = re.findall(r'[1-9A-Z]+(?:[a-z1-9]+|[A-Z]*(?=[A-Z]|$))', nameResult.group(1))
+ nameSplitUp = map(str.upper, nameSplit)
+ nameSplitUp = list(nameSplitUp) + ['FEATURES']
+ # check if there is no extension suffix
+ if (len(nameResult.group(2)) != 0):
+ # handle cases like VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT
+ suffixWithDigit = re.match(r'(\d+)(\w+)', nameResult.group(2))
+ if suffixWithDigit == None:
+ nameSplitUp.append(nameResult.group(2))
+ else:
+ nameSplitUp.extend([suffixWithDigit.group(1), suffixWithDigit.group(2)])
self.name = name
- self.sType = 'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_' + '_'.join(nameSplitUp) + '_FEATURES' + postfix
+ self.sType = 'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_' + '_'.join(nameSplitUp)
self.instanceName = 'd' + name[11:]
self.flagName = 'is' + name[16:]
self.extension = None
# construct final list
defs = []
for sType, sSuffix in matches:
+ # there are cases like VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT
+ # where 2 is after FEATURES - to handle this we need to split suffix to two parts
+ sVerSuffix = ''
+ sExtSuffix = sSuffix
+ suffixStart = sSuffix.rfind('_')
+ if suffixStart > 0:
+ sVerSuffix = sSuffix[:suffixStart]
+ sExtSuffix = sSuffix[suffixStart:]
structName = re.sub("[_0-9][a-z]", lambda match: match.group(0).upper(), sType.capitalize()).replace('_', '')
- ptrnStructName = r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Features' + sSuffix[1:] + ')'
+ ptrnStructName = r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Features' + sSuffix.replace('_', '') + ')'
matchStructName = re.search(ptrnStructName, src, re.IGNORECASE)
if matchStructName:
# handle special cases
sType = "SCISSOR_EXCLUSIVE"
elif sType == "ASTC_DECODE":
sType = "ASTC_DECODE_MODE"
- elif sType == "TEXTURE_COMPRESSION_ASTC_HDR":
- continue # skip due to const pNext
if sType in {'VULKAN_1_1', 'VULKAN_1_2'}:
continue
# end handling special cases
- ptrnExtensionName = r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_EXTENSION_NAME).+$'
+ ptrnExtensionName = r'^\s*#define\s+(\w+' + sExtSuffix + '_' + sType + sVerSuffix + '_EXTENSION_NAME).+$'
matchExtensionName = re.search(ptrnExtensionName, src, re.M)
- ptrnSpecVersion = r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_SPEC_VERSION).+$'
+ ptrnSpecVersion = r'^\s*#define\s+(\w+' + sExtSuffix + '_' + sType + sVerSuffix + '_SPEC_VERSION).+$'
matchSpecVersion = re.search(ptrnSpecVersion, src, re.M)
- defs.append( (sType, sSuffix, matchStructName.group(1), \
+ defs.append( (sType, sVerSuffix, sExtSuffix, matchStructName.group(1), \
matchExtensionName.group(0) if matchExtensionName else None,
matchExtensionName.group(1) if matchExtensionName else None,
- matchSpecVersion.group (1) if matchSpecVersion else '0') )
+ matchSpecVersion.group(1) if matchSpecVersion else '0') )
return defs
def generateDevicePropertiesDefs(src):
# skip VkPhysicalDeviceMemoryBudgetPropertiesEXT
if sType == "MEMORY_BUDGET":
continue
+ # there are cases like VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT
+ # where 2 is after PROPERTIES - to handle this we need to split suffix to two parts
+ sVerSuffix = ''
+ sExtSuffix = sSuffix
+ suffixStart = sSuffix.rfind('_')
+ if suffixStart > 0:
+ sVerSuffix = sSuffix[:suffixStart]
+ sExtSuffix = sSuffix[suffixStart:]
structName = re.sub("[_0-9][a-z]", lambda match: match.group(0).upper(), sType.capitalize()).replace('_', '')
- ptrnStructName = r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Properties' + sSuffix[1:] + ')'
+ ptrnStructName = r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Properties' + sSuffix.replace('_', '') + ')'
matchStructName = re.search(ptrnStructName, src, re.M)
if matchStructName:
+ # handle special cases
if sType in {'VULKAN_1_1', 'VULKAN_1_2'}:
continue
extType = sType
extType = "MAINTENANCE3"
elif extType == "DISCARD_RECTANGLE":
extType = "DISCARD_RECTANGLES"
+ elif extType == "SHADER_CORE":
+ extType = "SHADER_CORE_PROPERTIES"
# end handling special cases
- ptrnExtensionName = r'^\s*#define\s+(\w+' + sSuffix + '_' + extType + '_EXTENSION_NAME).+$'
+ ptrnExtensionName = r'^\s*#define\s+(\w+' + sExtSuffix + '_' + extType + sVerSuffix + '[_0-9]*_EXTENSION_NAME).+$'
matchExtensionName = re.search(ptrnExtensionName, src, re.M)
- ptrnSpecVersion = r'^\s*#define\s+(\w+' + sSuffix + '_' + extType + '_SPEC_VERSION).+$'
+ ptrnSpecVersion = r'^\s*#define\s+(\w+' + sExtSuffix + '_' + extType + sVerSuffix + '[_0-9]*_SPEC_VERSION).+$'
matchSpecVersion = re.search(ptrnSpecVersion, src, re.M)
- defs.append( (sType, sSuffix, matchStructName.group(1), \
+ defs.append( (sType, sVerSuffix, sExtSuffix, matchStructName.group(1), \
matchExtensionName.group(0) if matchExtensionName else None,
matchExtensionName.group(1) if matchExtensionName else None,
matchSpecVersion.group (1) if matchSpecVersion else '0') )
# and construct dictionary with all of their attributes
blobMembers = {}
blobStructs = {}
- blobPattern = re.compile("^VkPhysicalDeviceVulkan([1-9][0-9])Features$")
+ blobPattern = re.compile("^VkPhysicalDeviceVulkan([1-9][0-9])Features[0-9]*$")
for structureType in api.compositeTypes:
match = blobPattern.match(structureType.name)
if match:
initFromBlobDefinitions = []
emptyInitDefinitions = []
# iterate over all feature structures
- allFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features")
- nonExtFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features$")
+ allFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features[1-9]*")
+ nonExtFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features[1-9]*$")
for structureType in api.compositeTypes:
# skip structures that are not feature structures
if not allFeaturesPattern.match(structureType.name):
extensionDefines = []
makeFeatureDescDefinitions = []
featureStructWrappers = []
- for idx, (sType, sSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
+ for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
extensionNameDefinition = extName
if not extensionNameDefinition:
- extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sSuffix if sSuffix else ''), sType)
+ extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sExtSuffix if sExtSuffix else ''), sType)
# construct defines with names
if extLine:
extensionDefines.append(extLine)
sType = "ASTC_DECODE"
# end handling special cases
# construct makeFeatureDesc template function definitions
- sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_FEATURES{1}".format(sType, sSuffix)
+ sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_FEATURES{1}".format(sType, sVerSuffix + sExtSuffix)
makeFeatureDescDefinitions.append("template<> FeatureDesc makeFeatureDesc<{0}>(void) " \
"{{ return FeatureDesc{{{1}, {2}, {3}, {4}}}; }}".format(extStruct, sTypeName, extensionNameDefinition, specVer, len(dfDefs)-idx))
# construct CreateFeatureStruct wrapper block
if structName == 'VkPhysicalDeviceShaderDrawParameterFeatures':
structName = 'VkPhysicalDeviceShaderDrawParametersFeatures'
# end handling special cases
- structDef = [s for s in dfDefs if s[2] == structName][0]
+ structDef = [s for s in dfDefs if s[3] == structName][0]
sType = structDef[0]
- sSuffix = structDef[1]
+ sSuffix = structDef[1] + structDef[2]
# handle special cases
if sType == "SCISSOR_EXCLUSIVE":
sType = "EXCLUSIVE_SCISSOR"
extensionDefines = []
makePropertyDescDefinitions = []
propertyStructWrappers = []
- for idx, (sType, sSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
+ for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
extensionNameDefinition = extName
if not extensionNameDefinition:
- extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sSuffix if sSuffix else ''), sType)
+ extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sExtSuffix if sExtSuffix else ''), sType)
# construct defines with names
if extLine:
extensionDefines.append(extLine)
else:
extensionDefines.append('#define {0} "not_existent_property"'.format(extensionNameDefinition))
# construct makePropertyDesc template function definitions
- sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_PROPERTIES{1}".format(sType, sSuffix)
+ sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_PROPERTIES{1}".format(sType, sVerSuffix + sExtSuffix)
makePropertyDescDefinitions.append("template<> PropertyDesc makePropertyDesc<{0}>(void) " \
"{{ return PropertyDesc({1}, {2}, {3}, {4}); }}".format(extStruct, sTypeName, extensionNameDefinition, specVer, len(dfDefs)-idx))
# construct CreateProperty struct wrapper block
def genericDeviceFeaturesWriter(dfDefs, pattern, filename):
stream = []
- for sType, sSuffix, extStruct, _, _, _ in dfDefs:
+ for _, _, _, extStruct, _, _, _ in dfDefs:
nameSubStr = extStruct.replace("VkPhysicalDevice", "").replace("KHR", "").replace("NV", "")
stream.append(pattern.format(extStruct, nameSubStr))
writeInlFile(filename, INL_HEADER, indentLines(stream))
def genericDevicePropertiesWriter(dfDefs, pattern, filename):
stream = []
- for _, _, extStruct, _, _, _ in dfDefs:
+ for _, _, _, extStruct, _, _, _ in dfDefs:
nameSubStr = extStruct.replace("VkPhysicalDevice", "").replace("KHR", "").replace("NV", "")
if extStruct == "VkPhysicalDeviceRayTracingPropertiesNV":
nameSubStr += "NV"
dpd = generateDevicePropertiesDefs(src)
writeDeviceProperties (dpd, os.path.join(VULKAN_DIR, "vkDeviceProperties.inl"))
+
writeDevicePropertiesDefaultDeviceDefs (dpd, os.path.join(VULKAN_DIR, "vkDevicePropertiesForDefaultDeviceDefs.inl"))
writeDevicePropertiesContextDecl (dpd, os.path.join(VULKAN_DIR, "vkDevicePropertiesForContextDecl.inl"))
writeDevicePropertiesContextDefs (dpd, os.path.join(VULKAN_DIR, "vkDevicePropertiesForContextDefs.inl"))
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT = 1000332000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT = 1000332001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
typedef enum VkImageViewCreateFlagBits {
VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
+ VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkImageViewCreateFlagBits;
typedef VkFlags VkImageViewCreateFlags;
#define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2
#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
+
+
+#define VK_EXT_fragment_density_map2 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
+typedef struct VkPhysicalDeviceFragmentDensityMapFeatures2EXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 fragmentDensityMapDeferred;
+} VkPhysicalDeviceFragmentDensityMapFeatures2EXT;
+
+typedef struct VkPhysicalDeviceFragmentDensityMapProperties2EXT {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 subsampledLoads;
+ VkBool32 subsampledCoarseReconstructionEarlyAccess;
+ uint32_t maxSubsampledArrayLayers;
+ uint32_t maxDescriptorSetSubsampledSamplers;
+} VkPhysicalDeviceFragmentDensityMapProperties2EXT;
+
+
#ifdef __cplusplus
}
#endif