Test dynamic rendering with draw tests
authorPiotr Byszewski <piotr.byszewski@mobica.com>
Sat, 15 May 2021 09:06:29 +0000 (11:06 +0200)
committerPeter Kohaut <peter.kohaut@gmail.com>
Sun, 5 Sep 2021 22:10:16 +0000 (00:10 +0200)
This CL generalizes most of draw tests to also test
functionality added with VK_KHR_dynamic_rendering extension.

Components: Vulkan

VK-GL-CTS issue: 2858

Affets:
dEQP-VK.draw*
dEQP-VK.conditional_rendering.draw.*
dEQP-VK.conditional_rendering.clear_attachments.*

Change-Id: Ie7898714ed16056d4ac94b4165f637c867eadfb0

78 files changed:
android/cts/master/vk-master-2021-03-01.txt
android/cts/master/vk-master-2021-03-01/draw-with-dynamic-rendering.txt [new file with mode: 0644]
android/cts/master/vk-master-2021-03-01/draw.txt
android/cts/master/vk-master.txt
android/cts/master/vk-master/draw-with-dynamic-rendering.txt [new file with mode: 0644]
android/cts/master/vk-master/draw.txt
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkCmdUtil.cpp
external/vulkancts/framework/vulkan/vkCmdUtil.hpp
external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
external/vulkancts/framework/vulkan/vkDeviceFeatures.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
external/vulkancts/framework/vulkan/vkObjUtil.cpp
external/vulkancts/framework/vulkan/vkObjUtil.hpp
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
external/vulkancts/framework/vulkan/vkVulkan_c.inl
external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalClearAttachmentTests.cpp
external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawTests.cpp
external/vulkancts/modules/vulkan/draw/vktBasicDrawTests.cpp
external/vulkancts/modules/vulkan/draw/vktBasicDrawTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawBaseClass.cpp
external/vulkancts/modules/vulkan/draw/vktDrawBaseClass.hpp
external/vulkancts/modules/vulkan/draw/vktDrawConcurrentTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawConcurrentTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawDepthClampTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawDepthClampTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawDifferingInterpolationTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawDifferingInterpolationTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawDiscardRectanglesTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawDiscardRectanglesTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawIndexedTest.cpp
external/vulkancts/modules/vulkan/draw/vktDrawIndexedTest.hpp
external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.cpp
external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.hpp
external/vulkancts/modules/vulkan/draw/vktDrawInstancedTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawInstancedTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawInvertedDepthRangesTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawInvertedDepthRangesTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawMultiExtTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawMultiExtTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawMultipleClearsWithinRenderPass.cpp
external/vulkancts/modules/vulkan/draw/vktDrawMultipleClearsWithinRenderPass.hpp
external/vulkancts/modules/vulkan/draw/vktDrawMultipleInterpolationTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawMultipleInterpolationTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawScissorTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawScissorTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawShaderLayerTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawShaderLayerTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.hpp
external/vulkancts/modules/vulkan/draw/vktDrawSimpleTest.cpp
external/vulkancts/modules/vulkan/draw/vktDrawSimpleTest.hpp
external/vulkancts/modules/vulkan/draw/vktDrawTestCaseUtil.hpp
external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawTests.hpp
external/vulkancts/modules/vulkan/vktTestPackage.cpp
external/vulkancts/mustpass/master/vk-default.txt
external/vulkancts/mustpass/master/vk-default/draw-with-dynamic-rendering.txt [new file with mode: 0644]
external/vulkancts/mustpass/master/vk-default/draw.txt
external/vulkancts/scripts/src/vulkan_core.h

index 0b1d07b..52ac59d 100644 (file)
@@ -3,6 +3,7 @@ vk-master-2021-03-01/binding-model.txt
 vk-master-2021-03-01/compute.txt
 vk-master-2021-03-01/conditional-rendering.txt
 vk-master-2021-03-01/descriptor-indexing.txt
+vk-master-2021-03-01/draw-with-dynamic-rendering.txt
 vk-master-2021-03-01/draw.txt
 vk-master-2021-03-01/drm-format-modifiers.txt
 vk-master-2021-03-01/dynamic-state.txt
diff --git a/android/cts/master/vk-master-2021-03-01/draw-with-dynamic-rendering.txt b/android/cts/master/vk-master-2021-03-01/draw-with-dynamic-rendering.txt
new file mode 100644 (file)
index 0000000..7af31f1
--- /dev/null
@@ -0,0 +1,1556 @@
+dEQP-VK.draw_with_dynamic_rendering.concurrent.compute_and_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_instanced_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_instanced_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_indexed_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_indexed_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_instanced_indexed_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_instanced_indexed_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.point_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.point_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_fan.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_fan.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.point_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.point_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_fan.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_fan.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indexed_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indirect_first_instance
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed_indirect_first_instance
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_instanced
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_indexed_instanced
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltazero
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltasmall
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltaone
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltaone_bias_clamp_neg
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltasmall_bias_clamp_pos
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_depth_range_unrestricted
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltazero
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltasmall
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltaone
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltaone_bias_clamp_neg
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltasmall_bias_clamp_pos
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_depth_range_unrestricted
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.flat_0
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.flat_1
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.noperspective_0
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.noperspective_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_256
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_256
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_16
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_implicit
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_16
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_16
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_two_quads
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_two_clears
+dEQP-VK.draw_with_dynamic_rendering.scissor.two_static_scissors_one_quad
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_partially_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_viewport_border
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_max_int32
+dEQP-VK.draw_with_dynamic_rendering.scissor.16_static_scissors
+dEQP-VK.draw_with_dynamic_rendering.scissor.empty_static_scissor
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_two_quads
+dEQP-VK.draw_with_dynamic_rendering.scissor.empty_dynamic_scissor_first_draw
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_updates_between_draws
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_out_of_order_updates
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_partially_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_viewport_border
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_max_int32
+dEQP-VK.draw_with_dynamic_rendering.scissor.16_dynamic_scissors
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_two_clears
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_mix
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_framebuffer_border_in
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_framebuffer_border_in
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_framebuffer_border_out
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_framebuffer_border_out
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_oversized
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_oversized
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.1_sample
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.2_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.4_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.8_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.16_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.32_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.64_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.1_sample
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.2_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.4_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.8_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.16_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.32_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.64_samples
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_1
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_1
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_64
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_range_unrestricted_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_range_unrestricted_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_four_viewports
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_four_viewports
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
index 07df8db..8be6896 100644 (file)
@@ -86,36 +86,6 @@ dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_64
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3
-dEQP-VK.draw.output_location.array.r16g16-sfloat-highp
-dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float
-dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump
-dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3
-dEQP-VK.draw.output_location.array.r32-sfloat-highp
-dEQP-VK.draw.output_location.array.r32-sfloat-mediump
-dEQP-VK.draw.output_location.array.r8g8-uint-highp
-dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint
-dEQP-VK.draw.output_location.array.r8g8-uint-mediump
-dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint
-dEQP-VK.draw.output_location.shuffle.inputs-outputs
-dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod
 dEQP-VK.draw.depth_clamp.d16_unorm
 dEQP-VK.draw.depth_clamp.d16_unorm_clamp_input_negative
 dEQP-VK.draw.depth_clamp.d16_unorm_clamp_input_positive
@@ -152,10 +122,6 @@ dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_positive
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_negative
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_positive
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_clamp_four_viewports
-dEQP-VK.draw.ahb.triangle_list
-dEQP-VK.draw.ahb.triangle_list_layers_3
-dEQP-VK.draw.ahb.triangle_list_layers_5
-dEQP-VK.draw.ahb.triangle_list_layers_8
 dEQP-VK.draw.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangle_strip
 dEQP-VK.draw.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangle_strip
 dEQP-VK.draw.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangle_strip
@@ -5676,3 +5642,37 @@ dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_i
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.single_view.offset_6
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.multiview.no_offset
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.multiview.offset_6
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3
+dEQP-VK.draw.output_location.array.r16g16-sfloat-highp
+dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float
+dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump
+dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3
+dEQP-VK.draw.output_location.array.r32-sfloat-highp
+dEQP-VK.draw.output_location.array.r32-sfloat-mediump
+dEQP-VK.draw.output_location.array.r8g8-uint-highp
+dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint
+dEQP-VK.draw.output_location.array.r8g8-uint-mediump
+dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint
+dEQP-VK.draw.output_location.shuffle.inputs-outputs
+dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod
+dEQP-VK.draw.ahb.triangle_list
+dEQP-VK.draw.ahb.triangle_list_layers_3
+dEQP-VK.draw.ahb.triangle_list_layers_5
+dEQP-VK.draw.ahb.triangle_list_layers_8
index cbaabe9..a2f0aa9 100644 (file)
@@ -5,6 +5,7 @@ vk-master/compute.txt
 vk-master/conditional-rendering.txt
 vk-master/descriptor-indexing.txt
 vk-master/device-group.txt
+vk-master/draw-with-dynamic-rendering.txt
 vk-master/draw.txt
 vk-master/drm-format-modifiers.txt
 vk-master/dynamic-state.txt
diff --git a/android/cts/master/vk-master/draw-with-dynamic-rendering.txt b/android/cts/master/vk-master/draw-with-dynamic-rendering.txt
new file mode 100644 (file)
index 0000000..7af31f1
--- /dev/null
@@ -0,0 +1,1556 @@
+dEQP-VK.draw_with_dynamic_rendering.concurrent.compute_and_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_instanced_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_instanced_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_indexed_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_indexed_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_instanced_indexed_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_instanced_indexed_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.point_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.point_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_fan.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_fan.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.point_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.point_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_fan.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_fan.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indexed_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indirect_first_instance
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed_indirect_first_instance
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_instanced
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_indexed_instanced
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltazero
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltasmall
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltaone
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltaone_bias_clamp_neg
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltasmall_bias_clamp_pos
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_depth_range_unrestricted
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltazero
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltasmall
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltaone
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltaone_bias_clamp_neg
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltasmall_bias_clamp_pos
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_depth_range_unrestricted
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.flat_0
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.flat_1
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.noperspective_0
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.noperspective_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_256
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_256
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_16
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_implicit
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_16
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_16
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_two_quads
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_two_clears
+dEQP-VK.draw_with_dynamic_rendering.scissor.two_static_scissors_one_quad
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_partially_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_viewport_border
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_max_int32
+dEQP-VK.draw_with_dynamic_rendering.scissor.16_static_scissors
+dEQP-VK.draw_with_dynamic_rendering.scissor.empty_static_scissor
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_two_quads
+dEQP-VK.draw_with_dynamic_rendering.scissor.empty_dynamic_scissor_first_draw
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_updates_between_draws
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_out_of_order_updates
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_partially_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_viewport_border
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_max_int32
+dEQP-VK.draw_with_dynamic_rendering.scissor.16_dynamic_scissors
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_two_clears
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_mix
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_framebuffer_border_in
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_framebuffer_border_in
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_framebuffer_border_out
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_framebuffer_border_out
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_oversized
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_oversized
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.1_sample
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.2_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.4_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.8_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.16_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.32_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.64_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.1_sample
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.2_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.4_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.8_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.16_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.32_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.64_samples
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_1
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_1
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_64
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_range_unrestricted_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_range_unrestricted_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_four_viewports
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_four_viewports
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
index b222693..f833036 100644 (file)
@@ -821,36 +821,6 @@ dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_64
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3
-dEQP-VK.draw.output_location.array.r16g16-sfloat-highp
-dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float
-dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump
-dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3
-dEQP-VK.draw.output_location.array.r32-sfloat-highp
-dEQP-VK.draw.output_location.array.r32-sfloat-mediump
-dEQP-VK.draw.output_location.array.r8g8-uint-highp
-dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint
-dEQP-VK.draw.output_location.array.r8g8-uint-mediump
-dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint
-dEQP-VK.draw.output_location.shuffle.inputs-outputs
-dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod
 dEQP-VK.draw.depth_clamp.d16_unorm
 dEQP-VK.draw.depth_clamp.d16_unorm_clamp_input_negative
 dEQP-VK.draw.depth_clamp.d16_unorm_clamp_input_positive
@@ -887,10 +857,6 @@ dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_positive
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_negative
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_positive
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_clamp_four_viewports
-dEQP-VK.draw.ahb.triangle_list
-dEQP-VK.draw.ahb.triangle_list_layers_3
-dEQP-VK.draw.ahb.triangle_list_layers_5
-dEQP-VK.draw.ahb.triangle_list_layers_8
 dEQP-VK.draw.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangle_strip
 dEQP-VK.draw.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangle_strip
 dEQP-VK.draw.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangle_strip
@@ -6411,3 +6377,37 @@ dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_i
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.single_view.offset_6
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.multiview.no_offset
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.multiview.offset_6
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3
+dEQP-VK.draw.output_location.array.r16g16-sfloat-highp
+dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float
+dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump
+dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3
+dEQP-VK.draw.output_location.array.r32-sfloat-highp
+dEQP-VK.draw.output_location.array.r32-sfloat-mediump
+dEQP-VK.draw.output_location.array.r8g8-uint-highp
+dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint
+dEQP-VK.draw.output_location.array.r8g8-uint-mediump
+dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint
+dEQP-VK.draw.output_location.shuffle.inputs-outputs
+dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod
+dEQP-VK.draw.ahb.triangle_list
+dEQP-VK.draw.ahb.triangle_list_layers_3
+dEQP-VK.draw.ahb.triangle_list_layers_5
+dEQP-VK.draw.ahb.triangle_list_layers_8
index b6f8ff5..8f60531 100644 (file)
@@ -354,6 +354,15 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT                                     = 1000040006,
        VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT                                                           = 1000040007,
        VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                                                      = 1000041000,
+       VK_STRUCTURE_TYPE_RENDERING_INFO_KHR                                                                                            = 1000044000,
+       VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR                                                                         = 1000044001,
+       VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR                                                            = 1000044002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR                                        = 1000044003,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR                                         = 1000044004,
+       VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR                           = 1000044006,
+       VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT                            = 1000044007,
+       VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD                                                                      = 1000044008,
+       VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX                                                        = 1000044009,
        VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP                                                     = 1000049000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV                                      = 1000050000,
        VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV                                                          = 1000056000,
@@ -697,6 +706,7 @@ enum VkStructureType
        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,
+       VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV                                                                       = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
        VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR                                                         = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR                                                        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR                                                      = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
@@ -3391,6 +3401,15 @@ enum VkDisplayPlaneAlphaFlagBitsKHR
 };
 typedef uint32_t VkDisplayPlaneAlphaFlagsKHR;
 
+enum VkRenderingFlagBitsKHR
+{
+       VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 0x00000001,
+       VK_RENDERING_SUSPENDING_BIT_KHR                                                 = 0x00000002,
+       VK_RENDERING_RESUMING_BIT_KHR                                                   = 0x00000004,
+       VK_RENDERING_FLAG_BITS_MAX_ENUM_KHR                                             = 0x7FFFFFFF,
+};
+typedef uint32_t VkRenderingFlagsKHR;
+
 enum VkPerformanceCounterDescriptionFlagBitsKHR
 {
        VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR        = 0x00000001,
@@ -4034,6 +4053,7 @@ VK_DEFINE_PLATFORM_TYPE(CAMetalLayer,                             void*)
 #define VK_KHR_DISPLAY_SPEC_VERSION 23
 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
+#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
 #define VK_KHR_MULTIVIEW_SPEC_VERSION 1
 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
index e3e530a..6b68820 100644 (file)
@@ -198,6 +198,113 @@ void endRenderPass (const DeviceInterface&        vk,
        vk.cmdEndRenderPass(commandBuffer);
 }
 
+void beginRendering(const DeviceInterface&             vk,
+                                       const VkCommandBuffer           commandBuffer,
+                                       const VkImageView                       colorImageView,
+                                       const VkRect2D&                         renderArea,
+                                       const VkClearValue&                     clearValue,
+                                       const VkImageLayout                     imageLayout,
+                                       const VkAttachmentLoadOp        loadOperation,
+                                       VkRenderingFlagsKHR                     renderingFlags,
+                                       const deUint32                          layerCount,
+                                       const deUint32                          viewMask)
+{
+       VkRenderingAttachmentInfoKHR colorAttachment
+       {
+               VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,                // VkStructureType                                              sType;
+               DE_NULL,                                                                                                // const void*                                                  pNext;
+               colorImageView,                                                                                 // VkImageView                                                  imageView;
+               imageLayout,                                                                                    // VkImageLayout                                                imageLayout;
+               VK_RESOLVE_MODE_NONE,                                                                   // VkResolveModeFlagBits                                resolveMode;
+               DE_NULL,                                                                                                // VkImageView                                                  resolveImageView;
+               VK_IMAGE_LAYOUT_UNDEFINED,                                                              // VkImageLayout                                                resolveImageLayout;
+               loadOperation,                                                                                  // VkAttachmentLoadOp                                   loadOp;
+               VK_ATTACHMENT_STORE_OP_STORE,                                                   // VkAttachmentStoreOp                                  storeOp;
+               clearValue                                                                                              // VkClearValue                                                 clearValue;
+       };
+
+       VkRenderingInfoKHR renderingInfo
+       {
+               VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
+               DE_NULL,
+               renderingFlags,                                                                                 // VkRenderingFlagsKHR                                  flags;
+               renderArea,                                                                                             // VkRect2D                                                             renderArea;
+               layerCount,                                                                                             // deUint32                                                             layerCount;
+               viewMask,                                                                                               // deUint32                                                             viewMask;
+               1u,                                                                                                             // deUint32                                                             colorAttachmentCount;
+               &colorAttachment,                                                                               // const VkRenderingAttachmentInfoKHR*  pColorAttachments;
+               DE_NULL,                                                                                                // const VkRenderingAttachmentInfoKHR*  pDepthAttachment;
+               DE_NULL,                                                                                                // const VkRenderingAttachmentInfoKHR*  pStencilAttachment;
+       };
+
+       vk.cmdBeginRenderingKHR(commandBuffer, &renderingInfo);
+}
+
+void beginRendering(const DeviceInterface&             vk,
+                                       const VkCommandBuffer           commandBuffer,
+                                       const VkImageView                       colorImageView,
+                                       const VkImageView                       depthImageView,
+                                       const VkRect2D&                         renderArea,
+                                       const VkClearValue&                     clearColorValue,
+                                       const VkClearValue&                     clearDepthValue,
+                                       const VkImageLayout                     colorImageLayout,
+                                       const VkImageLayout                     depthImageLayout,
+                                       const VkAttachmentLoadOp        loadOperation,
+                                       VkRenderingFlagsKHR                     renderingFlags,
+                                       const deUint32                          layerCount,
+                                       const deUint32                          viewMask)
+{
+       VkRenderingAttachmentInfoKHR colorAttachment
+       {
+               VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,                // VkStructureType                                              sType;
+               DE_NULL,                                                                                                // const void*                                                  pNext;
+               colorImageView,                                                                                 // VkImageView                                                  imageView;
+               colorImageLayout,                                                                               // VkImageLayout                                                imageLayout;
+               VK_RESOLVE_MODE_NONE,                                                                   // VkResolveModeFlagBits                                resolveMode;
+               DE_NULL,                                                                                                // VkImageView                                                  resolveImageView;
+               VK_IMAGE_LAYOUT_UNDEFINED,                                                              // VkImageLayout                                                resolveImageLayout;
+               loadOperation,                                                                                  // VkAttachmentLoadOp                                   loadOp;
+               VK_ATTACHMENT_STORE_OP_STORE,                                                   // VkAttachmentStoreOp                                  storeOp;
+               clearColorValue                                                                                 // VkClearValue                                                 clearValue;
+       };
+
+       VkRenderingAttachmentInfoKHR depthAttachment
+       {
+               VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,                // VkStructureType                                              sType;
+               DE_NULL,                                                                                                // const void*                                                  pNext;
+               depthImageView,                                                                                 // VkImageView                                                  imageView;
+               depthImageLayout,                                                                               // VkImageLayout                                                imageLayout;
+               VK_RESOLVE_MODE_NONE,                                                                   // VkResolveModeFlagBits                                resolveMode;
+               DE_NULL,                                                                                                // VkImageView                                                  resolveImageView;
+               VK_IMAGE_LAYOUT_UNDEFINED,                                                              // VkImageLayout                                                resolveImageLayout;
+               loadOperation,                                                                                  // VkAttachmentLoadOp                                   loadOp;
+               VK_ATTACHMENT_STORE_OP_STORE,                                                   // VkAttachmentStoreOp                                  storeOp;
+               clearDepthValue                                                                                 // VkClearValue                                                 clearValue;
+       };
+
+       VkRenderingInfoKHR renderingInfo
+       {
+               VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
+               DE_NULL,
+               renderingFlags,                                                                                 // VkRenderingFlagsKHR                                  flags;
+               renderArea,                                                                                             // VkRect2D                                                             renderArea;
+               layerCount,                                                                                             // deUint32                                                             layerCount;
+               viewMask,                                                                                               // deUint32                                                             viewMask;
+               1u,                                                                                                             // deUint32                                                             colorAttachmentCount;
+               &colorAttachment,                                                                               // const VkRenderingAttachmentInfoKHR*  pColorAttachments;
+               &depthAttachment,                                                                               // const VkRenderingAttachmentInfoKHR*  pDepthAttachment;
+               DE_NULL,                                                                                                // const VkRenderingAttachmentInfoKHR*  pStencilAttachment;
+       };
+
+       vk.cmdBeginRenderingKHR(commandBuffer, &renderingInfo);
+}
+
+void endRendering(const DeviceInterface&       vk,
+                                 const VkCommandBuffer         commandBuffer)
+{
+       vk.cmdEndRenderingKHR(commandBuffer);
+}
+
 void submitCommandsAndWait (const DeviceInterface&             vk,
                                                        const VkDevice                          device,
                                                        const VkQueue                           queue,
index a766e2d..1a28b28 100644 (file)
@@ -110,6 +110,34 @@ void beginRenderPass (const DeviceInterface&       vk,
 void endRenderPass (const DeviceInterface&     vk,
                                        const VkCommandBuffer   commandBuffer);
 
+void beginRendering (const DeviceInterface&            vk,
+                                        const VkCommandBuffer          commandBuffer,
+                                        const VkImageView                      colorImageView,
+                                        const VkRect2D&                        renderArea,
+                                        const VkClearValue&            clearValue,
+                                        const VkImageLayout            imageLayout = VK_IMAGE_LAYOUT_GENERAL,
+                                        const VkAttachmentLoadOp       loadOperation = VK_ATTACHMENT_LOAD_OP_LOAD,
+                                        VkRenderingFlagsKHR            renderingFlags = 0,
+                                        const deUint32                         layerCount = 1u,
+                                        const deUint32                         viewMask = 0u);
+
+void beginRendering (const DeviceInterface&            vk,
+                                        const VkCommandBuffer          commandBuffer,
+                                        const VkImageView                      colorImageView,
+                                        const VkImageView                      depthImageView,
+                                        const VkRect2D&                        renderArea,
+                                        const VkClearValue&            clearColorValue,
+                                        const VkClearValue&            clearDepthValue,
+                                        const VkImageLayout            colorImageLayout = VK_IMAGE_LAYOUT_GENERAL,
+                                        const VkImageLayout            depthImageLayout = VK_IMAGE_LAYOUT_GENERAL,
+                                        const VkAttachmentLoadOp       loadOperation = VK_ATTACHMENT_LOAD_OP_LOAD,
+                                        VkRenderingFlagsKHR            renderingFlags = 0,
+                                        const deUint32                         layerCount = 1u,
+                                        const deUint32                         viewMask = 0u);
+
+void endRendering (const DeviceInterface&              vk,
+                                  const VkCommandBuffer                commandBuffer);
+
 void submitCommandsAndWait     (const DeviceInterface&                 vk,
                                                         const VkDevice                                 device,
                                                         const VkQueue                                  queue,
index 032f550..1b41995 100644 (file)
@@ -160,6 +160,8 @@ virtual VkResult                    getDeviceGroupPresentCapabilitiesKHR                    (VkDevice device, VkDe
 virtual VkResult                       getDeviceGroupSurfacePresentModesKHR                    (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const;
 virtual VkResult                       acquireNextImage2KHR                                                    (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) const;
 virtual VkResult                       createSharedSwapchainsKHR                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
+virtual void                           cmdBeginRenderingKHR                                                    (VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo) const;
+virtual void                           cmdEndRenderingKHR                                                              (VkCommandBuffer commandBuffer) const;
 virtual VkResult                       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const;
 virtual VkResult                       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const;
 virtual VkResult                       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const;
index c236495..21ddb00 100644 (file)
@@ -797,6 +797,16 @@ VkResult DeviceDriver::createSharedSwapchainsKHR (VkDevice device, uint32_t swap
        return m_vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
 }
 
+void DeviceDriver::cmdBeginRenderingKHR (VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo) const
+{
+       m_vk.cmdBeginRenderingKHR(commandBuffer, pRenderingInfo);
+}
+
+void DeviceDriver::cmdEndRenderingKHR (VkCommandBuffer commandBuffer) const
+{
+       m_vk.cmdEndRenderingKHR(commandBuffer);
+}
+
 VkResult DeviceDriver::getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const
 {
        return m_vk.getMemoryFdKHR(device, pGetFdInfo, pFd);
index 1315164..21653cb 100644 (file)
@@ -27,6 +27,7 @@ namespace vk
 #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
 #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
 #define DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME "not_existent_feature"
+#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
 #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_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
@@ -213,6 +214,7 @@ template<> void initFeatureFromBlob<VkPhysicalDeviceBufferDeviceAddressFeatures>
 }
 
 // generic template is not enough for some compilers
+template<> void initFeatureFromBlob<VkPhysicalDeviceDynamicRenderingFeaturesKHR>(VkPhysicalDeviceDynamicRenderingFeaturesKHR&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDevicePerformanceQueryFeaturesKHR>(VkPhysicalDevicePerformanceQueryFeaturesKHR&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceShaderClockFeaturesKHR>(VkPhysicalDeviceShaderClockFeaturesKHR&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR>(VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR&, const AllFeaturesBlobs&) {}
@@ -291,28 +293,29 @@ template<> void initFeatureFromBlob<VkPhysicalDeviceRayQueryFeaturesKHR>(VkPhysi
 template<> void initFeatureFromBlob<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(VkPhysicalDevicePortabilitySubsetFeaturesKHR&, const AllFeaturesBlobs&) {}
 
 
-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, 95}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice4444FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION, 94}; }
-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, 93}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 92}; }
-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, 91}; }
-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, 90}; }
-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, 89}; }
-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, 88}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 87}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION, 86}; }
-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, 85}; }
-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, 84}; }
-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, 83}; }
-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, 82}; }
-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, 81}; }
-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, 80}; }
-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, 79}; }
-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, 78}; }
-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, 77}; }
-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, 76}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION, 75}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 74}; }
+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, 96}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice4444FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION, 95}; }
+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, 94}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 93}; }
+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, 92}; }
+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, 91}; }
+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, 90}; }
+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, 89}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 88}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION, 87}; }
+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, 86}; }
+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, 85}; }
+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, 84}; }
+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, 83}; }
+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, 82}; }
+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, 81}; }
+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, 80}; }
+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, 79}; }
+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, 78}; }
+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, 77}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION, 76}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 75}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDynamicRenderingFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR, VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION, 74}; }
 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, 73}; }
 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, 72}; }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION, 71}; }
@@ -412,6 +415,7 @@ static const FeatureStructCreationData featureStructCreationArray[] =
        { createFeatureStructWrapper<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0 },
+       { createFeatureStructWrapper<VkPhysicalDeviceDynamicRenderingFeaturesKHR>, VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION },
        { 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<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION },
index 58605e4..e08f56b 100644 (file)
@@ -23,6 +23,7 @@ const vk::VkPhysicalDeviceDescriptorIndexingFeatures&                                 getDescriptorIndexingF
 const vk::VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                   getDeviceGeneratedCommandsFeatures                              (void) const;
 const vk::VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                               getDeviceMemoryReportFeaturesEXT                                (void) const;
 const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                 getDiagnosticsConfigFeatures                                    (void) const;
+const vk::VkPhysicalDeviceDynamicRenderingFeaturesKHR&                                 getDynamicRenderingFeatures                                             (void) const;
 const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                  getExclusiveScissorFeatures                                             (void) const;
 const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                             getExtendedDynamicStateFeaturesEXT                              (void) const;
 const vk::VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                            getExtendedDynamicState2FeaturesEXT                             (void) const;
index d0a3f0b..0ea0bf0 100644 (file)
@@ -23,6 +23,7 @@ const vk::VkPhysicalDeviceDescriptorIndexingFeatures&                                 Context::getDescriptor
 const vk::VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                   Context::getDeviceGeneratedCommandsFeatures                             (void) const { return m_device->getDeviceGeneratedCommandsFeatures();                   }
 const vk::VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                               Context::getDeviceMemoryReportFeaturesEXT                               (void) const { return m_device->getDeviceMemoryReportFeaturesEXT();                             }
 const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                 Context::getDiagnosticsConfigFeatures                                   (void) const { return m_device->getDiagnosticsConfigFeatures();                                 }
+const vk::VkPhysicalDeviceDynamicRenderingFeaturesKHR&                                 Context::getDynamicRenderingFeatures                                    (void) const { return m_device->getDynamicRenderingFeatures();                                  }
 const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                  Context::getExclusiveScissorFeatures                                    (void) const { return m_device->getExclusiveScissorFeatures();                                  }
 const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                             Context::getExtendedDynamicStateFeaturesEXT                             (void) const { return m_device->getExtendedDynamicStateFeaturesEXT();                   }
 const vk::VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                            Context::getExtendedDynamicState2FeaturesEXT                    (void) const { return m_device->getExtendedDynamicState2FeaturesEXT();                  }
index 6e014ea..d4334e6 100644 (file)
@@ -23,6 +23,7 @@ const VkPhysicalDeviceDescriptorIndexingFeatures&                                     getDescriptorIndexingFeatu
 const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                       getDeviceGeneratedCommandsFeatures                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>();                             }
 const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                           getDeviceMemoryReportFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>();                                 }
 const VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                     getDiagnosticsConfigFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>();                                   }
+const VkPhysicalDeviceDynamicRenderingFeaturesKHR&                                     getDynamicRenderingFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDynamicRenderingFeaturesKHR>();                                   }
 const VkPhysicalDeviceExclusiveScissorFeaturesNV&                                      getExclusiveScissorFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();                                    }
 const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                         getExtendedDynamicStateFeaturesEXT                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>();                               }
 const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                                getExtendedDynamicState2FeaturesEXT                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>();                              }
index c45aae4..8a5d7b5 100644 (file)
@@ -160,6 +160,8 @@ GetDeviceGroupPresentCapabilitiesKHRFunc                    getDeviceGroupPresentCapabilitiesKHR;
 GetDeviceGroupSurfacePresentModesKHRFunc                       getDeviceGroupSurfacePresentModesKHR;
 AcquireNextImage2KHRFunc                                                       acquireNextImage2KHR;
 CreateSharedSwapchainsKHRFunc                                          createSharedSwapchainsKHR;
+CmdBeginRenderingKHRFunc                                                       cmdBeginRenderingKHR;
+CmdEndRenderingKHRFunc                                                         cmdEndRenderingKHR;
 GetMemoryFdKHRFunc                                                                     getMemoryFdKHR;
 GetMemoryFdPropertiesKHRFunc                                           getMemoryFdPropertiesKHR;
 ImportSemaphoreFdKHRFunc                                                       importSemaphoreFdKHR;
index 6d1cff6..c760104 100644 (file)
@@ -37,6 +37,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_dynamic_rendering")
+       {
+               return;
+       }
        if (extName == "VK_KHR_multiview")
        {
                return;
@@ -1131,6 +1135,12 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
        {
                return;
        }
+       if (extName == "VK_KHR_dynamic_rendering")
+       {
+               functions.push_back("vkCmdBeginRenderingKHR");
+               functions.push_back("vkCmdEndRenderingKHR");
+               return;
+       }
        if (extName == "VK_KHR_multiview")
        {
                return;
@@ -2413,6 +2423,7 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
 {
        "VK_KHR_swapchain",
        "VK_KHR_display_swapchain",
+       "VK_KHR_dynamic_rendering",
        "VK_KHR_device_group",
        "VK_KHR_maintenance1",
        "VK_KHR_external_memory_fd",
index a800c4d..219b01e 100644 (file)
@@ -201,6 +201,8 @@ typedef VKAPI_ATTR VkResult                         (VKAPI_CALL* CreateDisplayModeKHRFunc)
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneCapabilitiesKHRFunc)                                                                        (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayPlaneSurfaceKHRFunc)                                                                          (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSharedSwapchainsKHRFunc)                                                                                     (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderingKHRFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderingKHRFunc)                                                                                            (VkCommandBuffer commandBuffer);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeatures2KHRFunc)                                                                         (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceProperties2KHRFunc)                                                                       (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatProperties2KHRFunc)                                                         (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
index 61c148f..d792f46 100644 (file)
@@ -866,6 +866,51 @@ template<> VkStructureType getStructureType<VkDisplayPresentInfoKHR> (void)
        return VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR;
 }
 
+template<> VkStructureType getStructureType<VkRenderingAttachmentInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkRenderingInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_RENDERING_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPipelineRenderingCreateInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceDynamicRenderingFeaturesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkCommandBufferInheritanceRenderingInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkRenderingFragmentShadingRateAttachmentInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkRenderingFragmentDensityMapAttachmentInfoEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT;
+}
+
+template<> VkStructureType getStructureType<VkAttachmentSampleCountInfoAMD> (void)
+{
+       return VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD;
+}
+
+template<> VkStructureType getStructureType<VkMultiviewPerViewAttributesInfoNVX> (void)
+{
+       return VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX;
+}
+
 template<> VkStructureType getStructureType<VkImportMemoryFdInfoKHR> (void)
 {
        return VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
index e6b0034..5139088 100644 (file)
@@ -216,6 +216,8 @@ m_vk.getDeviceGroupPresentCapabilitiesKHR                           = (GetDeviceGroupPresentCapabilitie
 m_vk.getDeviceGroupSurfacePresentModesKHR                              = (GetDeviceGroupSurfacePresentModesKHRFunc)                    GET_PROC_ADDR("vkGetDeviceGroupSurfacePresentModesKHR");
 m_vk.acquireNextImage2KHR                                                              = (AcquireNextImage2KHRFunc)                                                    GET_PROC_ADDR("vkAcquireNextImage2KHR");
 m_vk.createSharedSwapchainsKHR                                                 = (CreateSharedSwapchainsKHRFunc)                                               GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
+m_vk.cmdBeginRenderingKHR                                                              = (CmdBeginRenderingKHRFunc)                                                    GET_PROC_ADDR("vkCmdBeginRenderingKHR");
+m_vk.cmdEndRenderingKHR                                                                        = (CmdEndRenderingKHRFunc)                                                              GET_PROC_ADDR("vkCmdEndRenderingKHR");
 m_vk.getMemoryFdKHR                                                                            = (GetMemoryFdKHRFunc)                                                                  GET_PROC_ADDR("vkGetMemoryFdKHR");
 m_vk.getMemoryFdPropertiesKHR                                                  = (GetMemoryFdPropertiesKHRFunc)                                                GET_PROC_ADDR("vkGetMemoryFdPropertiesKHR");
 m_vk.importSemaphoreFdKHR                                                              = (ImportSemaphoreFdKHRFunc)                                                    GET_PROC_ADDR("vkImportSemaphoreFdKHR");
index f5da4f3..16716f6 100644 (file)
@@ -1534,6 +1534,17 @@ VKAPI_ATTR VkResult VKAPI_CALL getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice
        return VK_SUCCESS;
 }
 
+VKAPI_ATTR void VKAPI_CALL cmdBeginRenderingKHR (VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pRenderingInfo);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdEndRenderingKHR (VkCommandBuffer commandBuffer)
+{
+       DE_UNREF(commandBuffer);
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd)
 {
        DE_UNREF(device);
@@ -3506,6 +3517,8 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModesKHR,                              getDeviceGroupSurfacePresentModesKHR),
        VK_NULL_FUNC_ENTRY(vkAcquireNextImage2KHR,                                                              acquireNextImage2KHR),
        VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR,                                                 createSharedSwapchainsKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginRenderingKHR,                                                              cmdBeginRenderingKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdEndRenderingKHR,                                                                cmdEndRenderingKHR),
        VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeaturesKHR,                               getDeviceGroupPeerMemoryFeatures),
        VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMaskKHR,                                                               cmdSetDeviceMask),
        VK_NULL_FUNC_ENTRY(vkCmdDispatchBaseKHR,                                                                cmdDispatchBase),
index f178c12..e4c11d6 100644 (file)
@@ -84,7 +84,8 @@ Move<VkPipeline> makeGraphicsPipeline(const DeviceInterface&                                          vk,
                                                                          const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo,
                                                                          const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo,
                                                                          const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo,
-                                                                         const VkPipelineDynamicStateCreateInfo*               dynamicStateCreateInfo)
+                                                                         const VkPipelineDynamicStateCreateInfo*               dynamicStateCreateInfo,
+                                                                         const void*                                                                   pNext)
 {
        const VkBool32                                                                  disableRasterization                            = (fragmentShaderModule == DE_NULL);
        const bool                                                                              hasTessellation                                         = (tessellationControlShaderModule != DE_NULL || tessellationEvalShaderModule != DE_NULL);
@@ -295,7 +296,7 @@ Move<VkPipeline> makeGraphicsPipeline(const DeviceInterface&                                                vk,
        const VkGraphicsPipelineCreateInfo                              pipelineCreateInfo                                      =
        {
                VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,                                                                                                                // VkStructureType                                  sType
-               DE_NULL,                                                                                                                                                                                                // const void*                                      pNext
+               pNext,                                                                                                                                                                                                  // const void*                                      pNext
                0u,                                                                                                                                                                                                             // VkPipelineCreateFlags                            flags
                (deUint32)pipelineShaderStageParams.size(),                                                                                                                             // deUint32                                         stageCount
                &pipelineShaderStageParams[0],                                                                                                                                                  // const VkPipelineShaderStageCreateInfo*           pStages
index 19b51ef..e9c089b 100644 (file)
@@ -56,7 +56,8 @@ Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&                                                 vk,
                                                                           const VkPipelineMultisampleStateCreateInfo*          multisampleStateCreateInfo = DE_NULL,
                                                                           const VkPipelineDepthStencilStateCreateInfo*         depthStencilStateCreateInfo = DE_NULL,
                                                                           const VkPipelineColorBlendStateCreateInfo*           colorBlendStateCreateInfo = DE_NULL,
-                                                                          const VkPipelineDynamicStateCreateInfo*                      dynamicStateCreateInfo = DE_NULL);
+                                                                          const VkPipelineDynamicStateCreateInfo*                      dynamicStateCreateInfo = DE_NULL,
+                                                                          const void*                                                                          pNext = DE_NULL);
 
 Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&                                                  vk,
                                                                           const VkDevice                                                                       device,
index 0e4f7e5..45389f0 100644 (file)
@@ -412,6 +412,7 @@ tcu::Format::Bitfield<32>   getCompositeAlphaFlagsKHRStr                                                            (VkCompositeAlphaF
 tcu::Format::Bitfield<32>      getSwapchainCreateFlagsKHRStr                                                           (VkSwapchainCreateFlagsKHR value);
 tcu::Format::Bitfield<32>      getDeviceGroupPresentModeFlagsKHRStr                                            (VkDeviceGroupPresentModeFlagsKHR value);
 tcu::Format::Bitfield<32>      getDisplayPlaneAlphaFlagsKHRStr                                                         (VkDisplayPlaneAlphaFlagsKHR value);
+tcu::Format::Bitfield<32>      getRenderingFlagsKHRStr                                                                         (VkRenderingFlagsKHR value);
 tcu::Format::Bitfield<32>      getPerformanceCounterDescriptionFlagsKHRStr                                     (VkPerformanceCounterDescriptionFlagsKHR value);
 tcu::Format::Bitfield<32>      getAcquireProfilingLockFlagsKHRStr                                                      (VkAcquireProfilingLockFlagsKHR value);
 tcu::Format::Bitfield<32>      getSubmitFlagsKHRStr                                                                            (VkSubmitFlagsKHR value);
@@ -750,6 +751,15 @@ std::ostream&      operator<<      (std::ostream& s, const VkDisplayPlanePropertiesKHR& va
 std::ostream&  operator<<      (std::ostream& s, const VkDisplayPropertiesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDisplayPresentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderingAttachmentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderingInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRenderingCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceRenderingInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value);
 std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryFdInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryFdPropertiesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetFdInfoKHR& value);
index 3e02569..9db9005 100644 (file)
@@ -355,6 +355,15 @@ const char* getStructureTypeName (VkStructureType value)
                case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
                case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
                case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                        return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
+               case VK_STRUCTURE_TYPE_RENDERING_INFO_KHR:                                                                                                      return "VK_STRUCTURE_TYPE_RENDERING_INFO_KHR";
+               case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:                                           return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR";
+               case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                     return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
+               case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:                                                          return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
                case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:                                                       return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
                case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
@@ -3703,6 +3712,18 @@ tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFl
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
+tcu::Format::Bitfield<32> getRenderingFlagsKHRStr (VkRenderingFlagsKHR value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR,   "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT_KHR,                                                   "VK_RENDERING_SUSPENDING_BIT_KHR"),
+               tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT_KHR,                                                             "VK_RENDERING_RESUMING_BIT_KHR"),
+               tcu::Format::BitDesc(VK_RENDERING_FLAG_BITS_MAX_ENUM_KHR,                                               "VK_RENDERING_FLAG_BITS_MAX_ENUM_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
 tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
@@ -7725,6 +7746,124 @@ std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfoKHR& value)
+{
+       s << "VkRenderingAttachmentInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\timageLayout = " << value.imageLayout << '\n';
+       s << "\tresolveMode = " << value.resolveMode << '\n';
+       s << "\tresolveImageView = " << value.resolveImageView << '\n';
+       s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
+       s << "\tloadOp = " << value.loadOp << '\n';
+       s << "\tstoreOp = " << value.storeOp << '\n';
+       s << "\tclearValue = " << value.clearValue << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRenderingInfoKHR& value)
+{
+       s << "VkRenderingInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getRenderingFlagsKHRStr(value.flags) << '\n';
+       s << "\trenderArea = " << value.renderArea << '\n';
+       s << "\tlayerCount = " << value.layerCount << '\n';
+       s << "\tviewMask = " << value.viewMask << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
+       s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
+       s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfoKHR& value)
+{
+       s << "VkPipelineRenderingCreateInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tviewMask = " << value.viewMask << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
+       s << "\tdepthStencilAttachmentFormat = " << value.depthStencilAttachmentFormat << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeaturesKHR& value)
+{
+       s << "VkPhysicalDeviceDynamicRenderingFeaturesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfoKHR& value)
+{
+       s << "VkCommandBufferInheritanceRenderingInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getRenderingFlagsKHRStr(value.flags) << '\n';
+       s << "\tviewMask = " << value.viewMask << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
+       s << "\tdepthStencilAttachmentFormat = " << value.depthStencilAttachmentFormat << '\n';
+       s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
+{
+       s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\timageLayout = " << value.imageLayout << '\n';
+       s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
+{
+       s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\timageLayout = " << value.imageLayout << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
+{
+       s << "VkAttachmentSampleCountInfoAMD = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
+       s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
+{
+       s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
+       s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
 {
        s << "VkImportMemoryFdInfoKHR = {\n";
index 2475e79..b88089c 100644 (file)
@@ -2541,6 +2541,97 @@ struct VkDisplayPresentInfoKHR
        VkBool32                persistent;
 };
 
+struct VkRenderingAttachmentInfoKHR
+{
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkImageView                             imageView;
+       VkImageLayout                   imageLayout;
+       VkResolveModeFlagBits   resolveMode;
+       VkImageView                             resolveImageView;
+       VkImageLayout                   resolveImageLayout;
+       VkAttachmentLoadOp              loadOp;
+       VkAttachmentStoreOp             storeOp;
+       VkClearValue                    clearValue;
+};
+
+struct VkRenderingInfoKHR
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkRenderingFlagsKHR                                     flags;
+       VkRect2D                                                        renderArea;
+       uint32_t                                                        layerCount;
+       uint32_t                                                        viewMask;
+       uint32_t                                                        colorAttachmentCount;
+       const VkRenderingAttachmentInfoKHR*     pColorAttachments;
+       const VkRenderingAttachmentInfoKHR*     pDepthAttachment;
+       const VkRenderingAttachmentInfoKHR*     pStencilAttachment;
+};
+
+struct VkPipelineRenderingCreateInfoKHR
+{
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                viewMask;
+       uint32_t                colorAttachmentCount;
+       const VkFormat* pColorAttachmentFormats;
+       VkFormat                depthStencilAttachmentFormat;
+};
+
+struct VkPhysicalDeviceDynamicRenderingFeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                dynamicRendering;
+};
+
+struct VkCommandBufferInheritanceRenderingInfoKHR
+{
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkRenderingFlagsKHR             flags;
+       uint32_t                                viewMask;
+       uint32_t                                colorAttachmentCount;
+       const VkFormat*                 pColorAttachmentFormats;
+       VkFormat                                depthStencilAttachmentFormat;
+       VkSampleCountFlagBits   rasterizationSamples;
+};
+
+struct VkRenderingFragmentShadingRateAttachmentInfoKHR
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkImageView             imageView;
+       VkImageLayout   imageLayout;
+       VkExtent2D              shadingRateAttachmentTexelSize;
+};
+
+struct VkRenderingFragmentDensityMapAttachmentInfoEXT
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkImageView             imageView;
+       VkImageLayout   imageLayout;
+};
+
+struct VkAttachmentSampleCountInfoAMD
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       uint32_t                                                colorAttachmentCount;
+       const VkSampleCountFlagBits*    pColorAttachmentSamples;
+       VkSampleCountFlagBits                   depthStencilAttachmentSamples;
+};
+
+struct VkMultiviewPerViewAttributesInfoNVX
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkBool32                perViewAttributes;
+       VkBool32                perViewAttributesPositionXOnly;
+};
+
 struct VkImportMemoryFdInfoKHR
 {
        VkStructureType                                         sType;
@@ -7244,6 +7335,8 @@ typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAll
 
 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
 
+typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
+
 typedef VkTransformMatrixKHR VkTransformMatrixNV;
 
 typedef VkAabbPositionsKHR VkAabbPositionsNV;
index b7b9857..39269fb 100644 (file)
@@ -160,6 +160,8 @@ virtual VkResult                    getDeviceGroupPresentCapabilitiesKHR                    (VkDevice device, VkDe
 virtual VkResult                       getDeviceGroupSurfacePresentModesKHR                    (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const = 0;
 virtual VkResult                       acquireNextImage2KHR                                                    (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) const = 0;
 virtual VkResult                       createSharedSwapchainsKHR                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
+virtual void                           cmdBeginRenderingKHR                                                    (VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo) const = 0;
+virtual void                           cmdEndRenderingKHR                                                              (VkCommandBuffer commandBuffer) const = 0;
 virtual VkResult                       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
 virtual VkResult                       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const = 0;
 virtual VkResult                       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const = 0;
index d012c9c..df56bb6 100644 (file)
@@ -1388,6 +1388,15 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007,
 #endif
     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
+    VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = 1000044000,
+    VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = 1000044001,
+    VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = 1000044002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = 1000044003,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = 1000044004,
+    VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
+    VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
+    VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
+    VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
@@ -1753,6 +1762,7 @@ typedef enum VkStructureType {
     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,
+    VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
@@ -7339,6 +7349,114 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
 
 
+#define VK_KHR_dynamic_rendering 1
+#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
+#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
+
+typedef enum VkRenderingFlagBitsKHR {
+    VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 0x00000001,
+    VK_RENDERING_SUSPENDING_BIT_KHR = 0x00000002,
+    VK_RENDERING_RESUMING_BIT_KHR = 0x00000004,
+    VK_RENDERING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkRenderingFlagBitsKHR;
+typedef VkFlags VkRenderingFlagsKHR;
+typedef struct VkRenderingAttachmentInfoKHR {
+    VkStructureType          sType;
+    const void*              pNext;
+    VkImageView              imageView;
+    VkImageLayout            imageLayout;
+    VkResolveModeFlagBits    resolveMode;
+    VkImageView              resolveImageView;
+    VkImageLayout            resolveImageLayout;
+    VkAttachmentLoadOp       loadOp;
+    VkAttachmentStoreOp      storeOp;
+    VkClearValue             clearValue;
+} VkRenderingAttachmentInfoKHR;
+
+typedef struct VkRenderingInfoKHR {
+    VkStructureType                        sType;
+    const void*                            pNext;
+    VkRenderingFlagsKHR                    flags;
+    VkRect2D                               renderArea;
+    deUint32                               layerCount;
+    deUint32                               viewMask;
+    deUint32                               colorAttachmentCount;
+    const VkRenderingAttachmentInfoKHR*    pColorAttachments;
+    const VkRenderingAttachmentInfoKHR*    pDepthAttachment;
+    const VkRenderingAttachmentInfoKHR*    pStencilAttachment;
+} VkRenderingInfoKHR;
+
+typedef struct VkPipelineRenderingCreateInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    deUint32           viewMask;
+    deUint32           colorAttachmentCount;
+    const VkFormat*    pColorAttachmentFormats;
+    VkFormat           depthStencilAttachmentFormat;
+} VkPipelineRenderingCreateInfoKHR;
+
+typedef struct VkPhysicalDeviceDynamicRenderingFeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           dynamicRendering;
+} VkPhysicalDeviceDynamicRenderingFeaturesKHR;
+
+typedef struct VkCommandBufferInheritanceRenderingInfoKHR {
+    VkStructureType          sType;
+    const void*              pNext;
+    VkRenderingFlagsKHR      flags;
+    deUint32                 viewMask;
+    deUint32                 colorAttachmentCount;
+    const VkFormat*          pColorAttachmentFormats;
+    VkFormat                 depthStencilAttachmentFormat;
+    VkSampleCountFlagBits    rasterizationSamples;
+} VkCommandBufferInheritanceRenderingInfoKHR;
+
+typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkImageView        imageView;
+    VkImageLayout      imageLayout;
+    VkExtent2D         shadingRateAttachmentTexelSize;
+} VkRenderingFragmentShadingRateAttachmentInfoKHR;
+
+typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkImageView        imageView;
+    VkImageLayout      imageLayout;
+} VkRenderingFragmentDensityMapAttachmentInfoEXT;
+
+typedef struct VkAttachmentSampleCountInfoAMD {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    deUint32                        colorAttachmentCount;
+    const VkSampleCountFlagBits*    pColorAttachmentSamples;
+    VkSampleCountFlagBits           depthStencilAttachmentSamples;
+} VkAttachmentSampleCountInfoAMD;
+
+typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
+
+typedef struct VkMultiviewPerViewAttributesInfoNVX {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           perViewAttributes;
+    VkBool32           perViewAttributesPositionXOnly;
+} VkMultiviewPerViewAttributesInfoNVX;
+
+typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkRenderingInfoKHR*                   pRenderingInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
+    VkCommandBuffer                             commandBuffer);
+#endif
+
+
 #define VK_KHR_multiview 1
 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
index 202b0da..f41083c 100644 (file)
@@ -68,7 +68,7 @@ protected:
 };
 
 ConditionalClearAttachmentTest::ConditionalClearAttachmentTest (Context &context, ConditionalTestSpec testSpec)
-       : Draw::DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST)
+       : Draw::DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], false, vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST)
        , m_conditionalData(testSpec.conditionalData)
 {
        checkConditionalRenderingCapabilities(context, m_conditionalData);
@@ -90,7 +90,7 @@ tcu::TestStatus ConditionalClearAttachmentTest::iterate (void)
        const tcu::Vec4 drawColor       = tcu::RGBA::blue().toVec();
 
        const bool useSecondaryCmdBuffer = m_conditionalData.conditionInherited || m_conditionalData.conditionInSecondaryCommandBuffer;
-       beginRenderPass(useSecondaryCmdBuffer ? vk::VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS : vk::VK_SUBPASS_CONTENTS_INLINE);
+       beginRender(useSecondaryCmdBuffer ? vk::VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS : vk::VK_SUBPASS_CONTENTS_INLINE);
 
        vk::VkCommandBuffer targetCmdBuffer = *m_cmdBuffer;
 
@@ -179,7 +179,7 @@ tcu::TestStatus ConditionalClearAttachmentTest::iterate (void)
                m_vk.cmdExecuteCommands(*m_cmdBuffer, 1, &m_secondaryCmdBuffer.get());
        }
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
index 1eb66f0..c0c75c3 100644 (file)
@@ -111,7 +111,7 @@ protected:
 };
 
 ConditionalDraw::ConditionalDraw (Context &context, ConditionalTestSpec testSpec)
-       : Draw::DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST)
+       : Draw::DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], false, vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST)
        , m_command(testSpec.command)
        , m_drawCalls(testSpec.drawCalls)
        , m_conditionalData(testSpec.conditionalData)
@@ -332,7 +332,7 @@ tcu::TestStatus ConditionalDraw::iterate (void)
        const vk::VkDevice      device  = m_context.getDevice();
 
        const bool useSecondaryCmdBuffer = m_conditionalData.conditionInherited || m_conditionalData.conditionInSecondaryCommandBuffer;
-       beginRenderPass(useSecondaryCmdBuffer ? vk::VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS : vk::VK_SUBPASS_CONTENTS_INLINE);
+       beginRender(useSecondaryCmdBuffer ? vk::VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS : vk::VK_SUBPASS_CONTENTS_INLINE);
 
        vk::VkCommandBuffer targetCmdBuffer = *m_cmdBuffer;
 
@@ -450,7 +450,7 @@ tcu::TestStatus ConditionalDraw::iterate (void)
                m_vk.cmdExecuteCommands(*m_cmdBuffer, 1, &m_secondaryCmdBuffer.get());
        }
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
index a894ab2..f592522 100644 (file)
@@ -105,12 +105,14 @@ struct DrawParamsBase
 {
        std::vector<PositionColorVertex>        vertices;
        vk::VkPrimitiveTopology                         topology;
+       bool                                                            useDynamicRendering;
 
        DrawParamsBase ()
        {}
 
-       DrawParamsBase (const vk::VkPrimitiveTopology top)
+       DrawParamsBase (const vk::VkPrimitiveTopology top, bool dynamicRendering)
                : topology      (top)
+               , useDynamicRendering(dynamicRendering)
        {}
 };
 
@@ -130,8 +132,8 @@ struct DrawParams : DrawParamsBase
        // vkCmdDraw parameters is like a single VkDrawIndirectCommand
        vk::VkDrawIndirectCommand       params;
 
-       DrawParams (const vk::VkPrimitiveTopology top, const deUint32 vertexC, const deUint32 instanceC, const deUint32 firstV, const deUint32 firstI)
-               : DrawParamsBase        (top)
+       DrawParams (const vk::VkPrimitiveTopology top, bool dynamicRendering, const deUint32 vertexC, const deUint32 instanceC, const deUint32 firstV, const deUint32 firstI)
+               : DrawParamsBase        (top, dynamicRendering)
        {
                params.vertexCount              = vertexC;
                params.instanceCount    = instanceC;
@@ -145,8 +147,8 @@ struct DrawIndexedParams : DrawParamsBase, IndexedParamsBase
        // vkCmdDrawIndexed parameters is like a single VkDrawIndexedIndirectCommand
        vk::VkDrawIndexedIndirectCommand        params;
 
-       DrawIndexedParams (const vk::VkPrimitiveTopology top, const vk::VkIndexType indexT, const deUint32 indexC, const deUint32 instanceC, const deUint32 firstIdx, const deInt32 vertexO, const deUint32 firstIns)
-               : DrawParamsBase        (top)
+       DrawIndexedParams (const vk::VkPrimitiveTopology top, bool dynamicRendering, const vk::VkIndexType indexT, const deUint32 indexC, const deUint32 instanceC, const deUint32 firstIdx, const deInt32 vertexO, const deUint32 firstIns)
+               : DrawParamsBase        (top, dynamicRendering)
                , IndexedParamsBase     (indexT)
        {
                params.indexCount               = indexC;
@@ -161,8 +163,8 @@ struct DrawIndirectParams : DrawParamsBase
 {
        std::vector<vk::VkDrawIndirectCommand>  commands;
 
-       DrawIndirectParams (const vk::VkPrimitiveTopology top)
-               : DrawParamsBase        (top)
+       DrawIndirectParams (const vk::VkPrimitiveTopology top, bool dynamicRendering)
+               : DrawParamsBase        (top, dynamicRendering)
        {}
 
        void addCommand (const deUint32 vertexC, const deUint32 instanceC, const deUint32 firstV, const deUint32 firstI)
@@ -181,8 +183,8 @@ struct DrawIndexedIndirectParams : DrawParamsBase, IndexedParamsBase
 {
        std::vector<vk::VkDrawIndexedIndirectCommand>   commands;
 
-       DrawIndexedIndirectParams (const vk::VkPrimitiveTopology top, const vk::VkIndexType indexT)
-               : DrawParamsBase        (top)
+       DrawIndexedIndirectParams (const vk::VkPrimitiveTopology top, bool dynamicRendering, const vk::VkIndexType indexT)
+               : DrawParamsBase        (top, dynamicRendering)
                , IndexedParamsBase     (indexT)
        {}
 
@@ -275,6 +277,7 @@ public:
        void                                                    initialize                              (const DrawParamsBase& data);
        void                                                    initPipeline                    (const vk::VkDevice device);
        void                                                    beginRenderPass                 (void);
+       void                                                    endRenderPass                   (void);
 
        // Specialize this function for each type
        virtual tcu::TestStatus                 iterate                                 (void) = 0;
@@ -334,41 +337,43 @@ void DrawTestInstanceBase::initialize (const DrawParamsBase& data)
        const ImageViewCreateInfo colorTargetViewInfo(m_colorTargetImage->object(), vk::VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat);
        m_colorTargetView                                               = vk::createImageView(m_vk, device, &colorTargetViewInfo);
 
-       RenderPassCreateInfo renderPassCreateInfo;
-       renderPassCreateInfo.addAttachment(AttachmentDescription(m_colorAttachmentFormat,
-                                                                                                                        vk::VK_SAMPLE_COUNT_1_BIT,
-                                                                                                                        vk::VK_ATTACHMENT_LOAD_OP_LOAD,
-                                                                                                                        vk::VK_ATTACHMENT_STORE_OP_STORE,
-                                                                                                                        vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,
-                                                                                                                        vk::VK_ATTACHMENT_STORE_OP_STORE,
-                                                                                                                        vk::VK_IMAGE_LAYOUT_GENERAL,
-                                                                                                                        vk::VK_IMAGE_LAYOUT_GENERAL));
-
-       const vk::VkAttachmentReference colorAttachmentReference =
+       // create render pass only when we are not using dynamic rendering
+       if (!m_data.useDynamicRendering)
        {
-               0,
-               vk::VK_IMAGE_LAYOUT_GENERAL
-       };
-
-       renderPassCreateInfo.addSubpass(SubpassDescription(vk::VK_PIPELINE_BIND_POINT_GRAPHICS,
-                                                                                                          0,
-                                                                                                          0,
-                                                                                                          DE_NULL,
-                                                                                                          1,
-                                                                                                          &colorAttachmentReference,
-                                                                                                          DE_NULL,
-                                                                                                          AttachmentReference(),
-                                                                                                          0,
-                                                                                                          DE_NULL));
-
-       m_renderPass            = vk::createRenderPass(m_vk, device, &renderPassCreateInfo);
-
-       std::vector<vk::VkImageView> colorAttachments(1);
-       colorAttachments[0] = *m_colorTargetView;
-
-       const FramebufferCreateInfo framebufferCreateInfo(*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
+               RenderPassCreateInfo renderPassCreateInfo;
+               renderPassCreateInfo.addAttachment(AttachmentDescription(m_colorAttachmentFormat,
+                                                                                                                                vk::VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                                vk::VK_ATTACHMENT_LOAD_OP_LOAD,
+                                                                                                                                vk::VK_ATTACHMENT_STORE_OP_STORE,
+                                                                                                                                vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                                vk::VK_ATTACHMENT_STORE_OP_STORE,
+                                                                                                                                vk::VK_IMAGE_LAYOUT_GENERAL,
+                                                                                                                                vk::VK_IMAGE_LAYOUT_GENERAL));
+
+               const vk::VkAttachmentReference colorAttachmentReference
+               {
+                       0,
+                       vk::VK_IMAGE_LAYOUT_GENERAL
+               };
 
-       m_framebuffer           = vk::createFramebuffer(m_vk, device, &framebufferCreateInfo);
+               renderPassCreateInfo.addSubpass(SubpassDescription(vk::VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                                  0,
+                                                                                                                  0,
+                                                                                                                  DE_NULL,
+                                                                                                                  1,
+                                                                                                                  &colorAttachmentReference,
+                                                                                                                  DE_NULL,
+                                                                                                                  AttachmentReference(),
+                                                                                                                  0,
+                                                                                                                  DE_NULL));
+
+               m_renderPass = vk::createRenderPass(m_vk, device, &renderPassCreateInfo);
+
+               // create framebuffer
+               std::vector<vk::VkImageView>    colorAttachments                { *m_colorTargetView };
+               const FramebufferCreateInfo             framebufferCreateInfo   (*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
+               m_framebuffer = vk::createFramebuffer(m_vk, device, &framebufferCreateInfo);
+       }
 
        const vk::VkVertexInputBindingDescription vertexInputBindingDescription =
        {
@@ -424,6 +429,7 @@ void DrawTestInstanceBase::initPipeline (const vk::VkDevice device)
        vk::VkViewport viewport = vk::makeViewport(WIDTH, HEIGHT);
        vk::VkRect2D scissor    = vk::makeRect2D(WIDTH, HEIGHT);
 
+       // when dynamic_rendering is tested then renderPass won't be created and VK_NULL_HANDLE will be used here
        PipelineCreateInfo pipelineCreateInfo(*m_pipelineLayout, *m_renderPass, 0, 0);
        pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*vs, "main", vk::VK_SHADER_STAGE_VERTEX_BIT));
        pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*fs, "main", vk::VK_SHADER_STAGE_FRAGMENT_BIT));
@@ -435,12 +441,25 @@ void DrawTestInstanceBase::initPipeline (const vk::VkDevice device)
        pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
        pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState());
 
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               1u,
+               &m_colorAttachmentFormat,
+               vk::VK_FORMAT_UNDEFINED
+       };
+
+       if (m_data.useDynamicRendering)
+               pipelineCreateInfo.pNext = &renderingCreateInfo;
+
        m_pipeline = vk::createGraphicsPipeline(m_vk, device, DE_NULL, &pipelineCreateInfo);
 }
 
 void DrawTestInstanceBase::beginRenderPass (void)
 {
-       const vk::VkClearColorValue clearColor = { { 0.0f, 0.0f, 0.0f, 1.0f } };
+       const vk::VkClearValue clearColor { { { 0.0f, 0.0f, 0.0f, 1.0f } } };
 
        beginCommandBuffer(m_vk, *m_cmdBuffer, 0u);
 
@@ -449,7 +468,7 @@ void DrawTestInstanceBase::beginRenderPass (void)
 
        const ImageSubresourceRange subresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT);
        m_vk.cmdClearColorImage(*m_cmdBuffer, m_colorTargetImage->object(),
-               vk::VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
+               vk::VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &subresourceRange);
 
        const vk::VkMemoryBarrier memBarrier =
        {
@@ -463,9 +482,20 @@ void DrawTestInstanceBase::beginRenderPass (void)
                vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
                0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
 
-       const vk::VkRect2D renderArea = vk::makeRect2D(WIDTH, HEIGHT);
+       const vk::VkRect2D      renderArea      = vk::makeRect2D(WIDTH, HEIGHT);
+
+       if (m_data.useDynamicRendering)
+               vk::beginRendering(m_vk, *m_cmdBuffer, *m_colorTargetView, renderArea, clearColor);
+       else
+               vk::beginRenderPass(m_vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, renderArea, 1u, &clearColor);
+}
 
-       vk::beginRenderPass(m_vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, renderArea, tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f));
+void DrawTestInstanceBase::endRenderPass (void)
+{
+       if (m_data.useDynamicRendering)
+               vk::endRendering(m_vk, *m_cmdBuffer);
+       else
+               vk::endRenderPass(m_vk, *m_cmdBuffer);
 }
 
 void DrawTestInstanceBase::generateRefImage (const tcu::PixelBufferAccess& access, const std::vector<tcu::Vec4>& vertices, const std::vector<tcu::Vec4>& colors) const
@@ -579,6 +609,9 @@ void DrawTestCase<T>::checkSupport (Context& context) const
                context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
        }
 
+       if (m_data.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+
        if (m_data.topology == vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN &&
                context.isDeviceFunctionalitySupported("VK_KHR_portability_subset") &&
                !context.getPortabilitySubsetFeatures().triangleFans)
@@ -664,7 +697,7 @@ tcu::TestStatus DrawTestInstance<DrawParams>::iterate (void)
        m_vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &vertexBuffer, &vertexBufferOffset);
        m_vk.cmdBindPipeline(*m_cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
        m_vk.cmdDraw(*m_cmdBuffer, m_data.params.vertexCount, m_data.params.instanceCount, m_data.params.firstVertex, m_data.params.firstInstance);
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRenderPass();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
@@ -780,7 +813,7 @@ tcu::TestStatus DrawTestInstance<DrawIndexedParams>::iterate (void)
 
        m_vk.cmdBindIndexBuffer(*m_cmdBuffer, *indexBuffer, 0u, m_data.indexType);
        m_vk.cmdDrawIndexed(*m_cmdBuffer, m_data.params.indexCount, m_data.params.instanceCount, m_data.params.firstIndex, m_data.params.vertexOffset, m_data.params.firstInstance);
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRenderPass();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, vkDevice, queue, m_cmdBuffer.get());
@@ -909,7 +942,7 @@ tcu::TestStatus DrawTestInstance<DrawIndirectParams>::iterate (void)
                m_vk.cmdDrawIndirect(*m_cmdBuffer, *indirectBuffer, indirectAlloc->getOffset(), (deUint32)m_data.commands.size(), sizeof(vk::VkDrawIndirectCommand));
        }
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRenderPass();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, vkDevice, queue, m_cmdBuffer.get());
@@ -1091,7 +1124,7 @@ tcu::TestStatus DrawTestInstance<DrawIndexedIndirectParams>::iterate (void)
                m_vk.cmdDrawIndexedIndirect(*m_cmdBuffer, *indirectBuffer, indirectAlloc->getOffset(), (deUint32)m_data.commands.size(), sizeof(vk::VkDrawIndexedIndirectCommand));
        }
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRenderPass();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, vkDevice, queue, m_cmdBuffer.get());
@@ -1135,10 +1168,12 @@ struct TestCaseParams
 {
        const DrawCommandType                   command;
        const vk::VkPrimitiveTopology   topology;
+       const bool                                              useDynamicRendering;
 
-       TestCaseParams (const DrawCommandType cmd, const vk::VkPrimitiveTopology top)
-               : command       (cmd)
-               , topology      (top)
+       TestCaseParams (const DrawCommandType cmd, const vk::VkPrimitiveTopology top, bool dynamicRendering)
+               : command                               (cmd)
+               , topology                              (top)
+               , useDynamicRendering   (dynamicRendering)
        {}
 };
 
@@ -1146,15 +1181,21 @@ struct TestCaseParams
 
 void populateSubGroup (tcu::TestCaseGroup* testGroup, const TestCaseParams caseParams)
 {
-       de::Random                                              rnd                     (SEED ^ deStringHash(testGroup->getName()));
-       tcu::TestContext&                               testCtx         = testGroup->getTestContext();
-       const DrawCommandType                   command         = caseParams.command;
-       const vk::VkPrimitiveTopology   topology        = caseParams.topology;
-
-       for (deUint32 primitiveCountIdx = 0; primitiveCountIdx < DE_LENGTH_OF_ARRAY(PRIMITIVE_COUNT); ++primitiveCountIdx)
+       de::Random                                              rnd                                             (SEED ^ deStringHash(testGroup->getName()));
+       tcu::TestContext&                               testCtx                                 = testGroup->getTestContext();
+       const DrawCommandType                   command                                 = caseParams.command;
+       const vk::VkPrimitiveTopology   topology                                = caseParams.topology;
+       const bool                                              useDynamicRendering             = caseParams.useDynamicRendering;
+       const deUint32                                  primitiveCountArrLength = DE_LENGTH_OF_ARRAY(PRIMITIVE_COUNT);
+
+       for (deUint32 primitiveCountIdx = 0; primitiveCountIdx < primitiveCountArrLength; ++primitiveCountIdx)
        {
                const deUint32 primitives = PRIMITIVE_COUNT[primitiveCountIdx];
 
+               // when testing VK_KHR_dynamic_rendering there is no need to duplicate tests for all primitive counts; use just 1 and 45
+               if (useDynamicRendering && (primitiveCountIdx != 0) && (primitiveCountIdx != primitiveCountArrLength-1))
+                       continue;
+
                deUint32        multiplier      = 1;
                deUint32        offset          = 0;
                // Calculated by Vulkan 23.1
@@ -1183,7 +1224,7 @@ void populateSubGroup (tcu::TestCaseGroup* testGroup, const TestCaseParams caseP
                                deUint32        firstPrimitive  = rnd.getInt(0, primitives);
                                deUint32        firstVertex             = multiplier * firstPrimitive;
                                testGroup->addChild(new DrawCase(testCtx, name.c_str(), "vkCmdDraw testcase.",
-                                       DrawParams(topology, vertexCount, 1, firstVertex, 0))
+                                       DrawParams(topology, useDynamicRendering, vertexCount, 1, firstVertex, 0))
                                );
                                break;
                        }
@@ -1192,7 +1233,7 @@ void populateSubGroup (tcu::TestCaseGroup* testGroup, const TestCaseParams caseP
                                deUint32        firstIndex                      = rnd.getInt(0, OFFSET_LIMIT);
                                deUint32        vertexOffset            = rnd.getInt(0, OFFSET_LIMIT);
                                testGroup->addChild(new IndexedCase(testCtx, name.c_str(), "vkCmdDrawIndexed testcase.",
-                                       DrawIndexedParams(topology, vk::VK_INDEX_TYPE_UINT32, vertexCount, 1, firstIndex, vertexOffset, 0))
+                                       DrawIndexedParams(topology, useDynamicRendering, vk::VK_INDEX_TYPE_UINT32, vertexCount, 1, firstIndex, vertexOffset, 0))
                                );
                                break;
                        }
@@ -1200,7 +1241,7 @@ void populateSubGroup (tcu::TestCaseGroup* testGroup, const TestCaseParams caseP
                        {
                                deUint32        firstVertex             = rnd.getInt(0, OFFSET_LIMIT);
 
-                               DrawIndirectParams      params  = DrawIndirectParams(topology);
+                               DrawIndirectParams      params  = DrawIndirectParams(topology, useDynamicRendering);
 
                                params.addCommand(vertexCount, 1, 0, 0);
                                testGroup->addChild(new IndirectCase(testCtx, (name + "_single_command").c_str(), "vkCmdDrawIndirect testcase.", params));
@@ -1214,7 +1255,7 @@ void populateSubGroup (tcu::TestCaseGroup* testGroup, const TestCaseParams caseP
                                deUint32        firstIndex              = rnd.getInt(vertexCount, OFFSET_LIMIT);
                                deUint32        vertexOffset    = rnd.getInt(vertexCount, OFFSET_LIMIT);
 
-                               DrawIndexedIndirectParams       params  = DrawIndexedIndirectParams(topology, vk::VK_INDEX_TYPE_UINT32);
+                               DrawIndexedIndirectParams       params  = DrawIndexedIndirectParams(topology, useDynamicRendering, vk::VK_INDEX_TYPE_UINT32);
                                params.addCommand(vertexCount, 1, 0, 0, 0);
                                testGroup->addChild(new IndexedIndirectCase(testCtx, (name + "_single_command").c_str(), "vkCmdDrawIndexedIndirect testcase.", params));
 
@@ -1228,28 +1269,28 @@ void populateSubGroup (tcu::TestCaseGroup* testGroup, const TestCaseParams caseP
        }
 }
 
-void createTopologyGroups (tcu::TestCaseGroup* testGroup, const DrawCommandType cmdType)
+void createDrawTests(tcu::TestCaseGroup* testGroup, bool useDynamicRendering)
 {
-       for (deUint32 idx = 0; idx != vk::VK_PRIMITIVE_TOPOLOGY_PATCH_LIST; ++idx)
+       for (deUint32 drawTypeIndex = 0; drawTypeIndex < DRAW_COMMAND_TYPE_DRAW_LAST; ++drawTypeIndex)
        {
-               const vk::VkPrimitiveTopology   topology        = vk::VkPrimitiveTopology(idx);
-               const std::string                               groupName       = de::toLower(getPrimitiveTopologyName(topology)).substr(22);
-               addTestGroup(testGroup, groupName, "Testcases with a specific topology.", populateSubGroup, TestCaseParams(cmdType, topology));
-       }
-}
+               const DrawCommandType                   command                 (static_cast<DrawCommandType>(drawTypeIndex));
+               de::MovePtr<tcu::TestCaseGroup> topologyGroup   (new tcu::TestCaseGroup(testGroup->getTestContext(), getDrawCommandTypeName(command), "Group for testing a specific draw command."));
 
-void createDrawTests (tcu::TestCaseGroup* testGroup)
-{
-       for (deUint32 idx = 0; idx < DRAW_COMMAND_TYPE_DRAW_LAST; ++idx)
-       {
-               const DrawCommandType   command = DrawCommandType(idx);
-               addTestGroup(testGroup, getDrawCommandTypeName(command), "Group for testing a specific draw command.", createTopologyGroups, command);
+               for (deUint32 topologyIdx = 0; topologyIdx != vk::VK_PRIMITIVE_TOPOLOGY_PATCH_LIST; ++topologyIdx)
+               {
+                       const vk::VkPrimitiveTopology   topology        (static_cast<vk::VkPrimitiveTopology>(topologyIdx));
+                       const std::string                               groupName       (de::toLower(getPrimitiveTopologyName(topology)).substr(22));
+
+                       addTestGroup(topologyGroup.get(), groupName, "Testcases with a specific topology.", populateSubGroup, TestCaseParams(command, topology, useDynamicRendering));
+               }
+
+               testGroup->addChild(topologyGroup.release());
        }
 }
 
-tcu::TestCaseGroup*    createBasicDrawTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup*    createBasicDrawTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "basic_draw", "Basic drawing tests", createDrawTests);
+       return createTestGroup(testCtx, "basic_draw", "Basic drawing tests", createDrawTests, useDynamicRendering);
 }
 
 }      // DrawTests
index c35b7fc..0428776 100644 (file)
@@ -32,7 +32,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*    createBasicDrawTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*    createBasicDrawTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index adbfba1..2bfbeec 100644 (file)
@@ -31,9 +31,10 @@ namespace vkt
 namespace Draw
 {
 
-DrawTestsBaseClass::DrawTestsBaseClass (Context& context, const char* vertexShaderName, const char* fragmentShaderName, vk::VkPrimitiveTopology topology)
+DrawTestsBaseClass::DrawTestsBaseClass (Context& context, const char* vertexShaderName, const char* fragmentShaderName, bool useDynamicRendering, vk::VkPrimitiveTopology topology)
        : TestInstance                          (context)
        , m_colorAttachmentFormat       (vk::VK_FORMAT_R8G8B8A8_UNORM)
+       , m_useDynamicRendering         (useDynamicRendering)
        , m_topology                            (topology)
        , m_vk                                          (context.getDeviceInterface())
        , m_vertexShaderName            (vertexShaderName)
@@ -58,42 +59,43 @@ void DrawTestsBaseClass::initialize (void)
        const ImageViewCreateInfo colorTargetViewInfo(m_colorTargetImage->object(), vk::VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat);
        m_colorTargetView                                               = vk::createImageView(m_vk, device, &colorTargetViewInfo);
 
-       RenderPassCreateInfo renderPassCreateInfo;
-       renderPassCreateInfo.addAttachment(AttachmentDescription(m_colorAttachmentFormat,
-                                                                                                                        vk::VK_SAMPLE_COUNT_1_BIT,
-                                                                                                                        vk::VK_ATTACHMENT_LOAD_OP_LOAD,
-                                                                                                                        vk::VK_ATTACHMENT_STORE_OP_STORE,
-                                                                                                                        vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,
-                                                                                                                        vk::VK_ATTACHMENT_STORE_OP_STORE,
-                                                                                                                        vk::VK_IMAGE_LAYOUT_GENERAL,
-                                                                                                                        vk::VK_IMAGE_LAYOUT_GENERAL));
-
-
-       const vk::VkAttachmentReference colorAttachmentReference =
+       // create renderpass and framebuffer only when we are not using dynamic rendering
+       if (!m_useDynamicRendering)
        {
-               0,
-               vk::VK_IMAGE_LAYOUT_GENERAL
-       };
-
-       renderPassCreateInfo.addSubpass(SubpassDescription(vk::VK_PIPELINE_BIND_POINT_GRAPHICS,
-                                                                                                          0,
-                                                                                                          0,
-                                                                                                          DE_NULL,
-                                                                                                          1,
-                                                                                                          &colorAttachmentReference,
-                                                                                                          DE_NULL,
-                                                                                                          AttachmentReference(),
-                                                                                                          0,
-                                                                                                          DE_NULL));
-
-       m_renderPass            = vk::createRenderPass(m_vk, device, &renderPassCreateInfo);
-
-       std::vector<vk::VkImageView> colorAttachments(1);
-       colorAttachments[0] = *m_colorTargetView;
-
-       const FramebufferCreateInfo framebufferCreateInfo(*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
-
-       m_framebuffer           = vk::createFramebuffer(m_vk, device, &framebufferCreateInfo);
+               RenderPassCreateInfo renderPassCreateInfo;
+               renderPassCreateInfo.addAttachment(AttachmentDescription(m_colorAttachmentFormat,
+                                                                                                                                vk::VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                                vk::VK_ATTACHMENT_LOAD_OP_LOAD,
+                                                                                                                                vk::VK_ATTACHMENT_STORE_OP_STORE,
+                                                                                                                                vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                                vk::VK_ATTACHMENT_STORE_OP_STORE,
+                                                                                                                                vk::VK_IMAGE_LAYOUT_GENERAL,
+                                                                                                                                vk::VK_IMAGE_LAYOUT_GENERAL));
+
+               const vk::VkAttachmentReference colorAttachmentReference
+               {
+                       0,
+                       vk::VK_IMAGE_LAYOUT_GENERAL
+               };
+
+               renderPassCreateInfo.addSubpass(SubpassDescription(vk::VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                                  0,
+                                                                                                                  0,
+                                                                                                                  DE_NULL,
+                                                                                                                  1,
+                                                                                                                  &colorAttachmentReference,
+                                                                                                                  DE_NULL,
+                                                                                                                  AttachmentReference(),
+                                                                                                                  0,
+                                                                                                                  DE_NULL));
+
+               m_renderPass = vk::createRenderPass(m_vk, device, &renderPassCreateInfo);
+
+               // create framebuffer
+               std::vector<vk::VkImageView>    colorAttachments                { *m_colorTargetView };
+               const FramebufferCreateInfo             framebufferCreateInfo   (*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
+               m_framebuffer = vk::createFramebuffer(m_vk, device, &framebufferCreateInfo);
+       }
 
        const vk::VkVertexInputBindingDescription vertexInputBindingDescription =
        {
@@ -166,12 +168,25 @@ void DrawTestsBaseClass::initPipeline (const vk::VkDevice device)
        pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
        pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState());
 
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               1u,
+               &m_colorAttachmentFormat,
+               vk::VK_FORMAT_UNDEFINED
+       };
+
+       if (m_useDynamicRendering)
+               pipelineCreateInfo.pNext = &renderingCreateInfo;
+
        m_pipeline = vk::createGraphicsPipeline(m_vk, device, DE_NULL, &pipelineCreateInfo);
 }
 
-void DrawTestsBaseClass::beginRenderPass (const vk::VkSubpassContents content)
+void DrawTestsBaseClass::beginRender (const vk::VkSubpassContents content)
 {
-       const vk::VkClearColorValue clearColor = { { 0.0f, 0.0f, 0.0f, 1.0f } };
+       const vk::VkClearValue clearColor { { { 0.0f, 0.0f, 0.0f, 1.0f } } };
 
        beginCommandBuffer(m_vk, *m_cmdBuffer, 0u);
 
@@ -180,7 +195,7 @@ void DrawTestsBaseClass::beginRenderPass (const vk::VkSubpassContents content)
 
        const ImageSubresourceRange subresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT);
        m_vk.cmdClearColorImage(*m_cmdBuffer, m_colorTargetImage->object(),
-               vk::VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
+               vk::VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &subresourceRange);
 
        const vk::VkMemoryBarrier memBarrier =
        {
@@ -195,7 +210,24 @@ void DrawTestsBaseClass::beginRenderPass (const vk::VkSubpassContents content)
                0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
 
        const vk::VkRect2D renderArea = vk::makeRect2D(WIDTH, HEIGHT);
-       vk::beginRenderPass(m_vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, renderArea, content);
+       if (m_useDynamicRendering)
+       {
+               vk::VkRenderingFlagsKHR renderingFlags = 0;
+               if (content == vk::VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS)
+                       renderingFlags = vk::VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR;
+
+               vk::beginRendering(m_vk, *m_cmdBuffer, *m_colorTargetView, renderArea, clearColor, vk::VK_IMAGE_LAYOUT_GENERAL, vk::VK_ATTACHMENT_LOAD_OP_LOAD, renderingFlags);
+       }
+       else
+               vk::beginRenderPass(m_vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, renderArea, content);
+}
+
+void DrawTestsBaseClass::endRender (void)
+{
+       if (m_useDynamicRendering)
+               vk::endRendering(m_vk, *m_cmdBuffer);
+       else
+               vk::endRenderPass(m_vk, *m_cmdBuffer);
 }
 
 }      // Draw
index 2c8c797..f530c68 100644 (file)
@@ -105,12 +105,13 @@ struct ReferenceImageInstancedCoordinates
 class DrawTestsBaseClass : public TestInstance
 {
 public:
-                                                               DrawTestsBaseClass      (Context& context, const char* vertexShaderName, const char* fragmentShaderName, vk::VkPrimitiveTopology topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP);
+                                                               DrawTestsBaseClass      (Context& context, const char* vertexShaderName, const char* fragmentShaderName, bool useDynamicRendering, vk::VkPrimitiveTopology topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP);
 
 protected:
        void                                            initialize                      (void);
        virtual void                            initPipeline            (const vk::VkDevice device);
-       void                                            beginRenderPass         (const vk::VkSubpassContents content = vk::VK_SUBPASS_CONTENTS_INLINE);
+       void                                            beginRender                     (const vk::VkSubpassContents content = vk::VK_SUBPASS_CONTENTS_INLINE);
+       void                                            endRender                       (void);
        virtual tcu::TestStatus         iterate                         (void)                                          { TCU_FAIL("Implement iterate() method!");      }
 
        enum
@@ -121,6 +122,7 @@ protected:
 
        vk::VkFormat                                                                    m_colorAttachmentFormat;
 
+       const bool                                                                              m_useDynamicRendering;
        const vk::VkPrimitiveTopology                                   m_topology;
 
        const vk::DeviceInterface&                                              m_vk;
index b3a38c3..d286b76 100644 (file)
@@ -66,7 +66,7 @@ public:
 };
 
 ConcurrentDraw::ConcurrentDraw (Context &context, TestSpec testSpec)
-       : DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.topology)
+       : DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.useDynamicRendering, testSpec.topology)
 {
        m_data.push_back(VertexElementData(tcu::Vec4(1.0f, -1.0f, 1.0f, 1.0f), tcu::RGBA::blue().toVec(), -1));
        m_data.push_back(VertexElementData(tcu::Vec4(-1.0f, 1.0f, 1.0f, 1.0f), tcu::RGBA::blue().toVec(), -1));
@@ -247,7 +247,7 @@ tcu::TestStatus ConcurrentDraw::iterate (void)
        const VkQueue           drawQueue                       = m_context.getUniversalQueue();
        const VkDevice          drawDevice                      = m_context.getDevice();
 
-       beginRenderPass();
+       beginRender();
 
        const VkDeviceSize      vertexBufferOffset      = 0;
        const VkBuffer          vertexBuffer            = m_vertexBuffer->object();
@@ -257,7 +257,7 @@ tcu::TestStatus ConcurrentDraw::iterate (void)
 
        m_vk.cmdDraw(*m_cmdBuffer, 6, 1, 2, 0);
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        const VkCommandBuffer   drawCommandBuffer       = m_cmdBuffer.get();
@@ -377,27 +377,35 @@ tcu::TestStatus ConcurrentDraw::iterate (void)
        return tcu::TestStatus(res, qpGetTestResultName(res));
 }
 
+void checkSupport(Context& context, ConcurrentDraw::TestSpec testSpec)
+{
+       if (testSpec.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+}
+
 }      // anonymous
 
-ConcurrentDrawTests::ConcurrentDrawTests (tcu::TestContext &testCtx)
-: TestCaseGroup        (testCtx, "concurrent", "concurrent drawing")
+ConcurrentDrawTests::ConcurrentDrawTests (tcu::TestContext &testCtx, bool useDynamicRendering)
+       : TestCaseGroup                 (testCtx, "concurrent", "concurrent drawing")
+       , m_useDynamicRendering (useDynamicRendering)
 {
        /* Left blank on purpose */
 }
 
-ConcurrentDrawTests::~ConcurrentDrawTests (void) {}
-
 void ConcurrentDrawTests::init (void)
 {
+       ConcurrentDraw::TestSpec testSpec
        {
-               ConcurrentDraw::TestSpec testSpec;
-               testSpec.shaders[glu::SHADERTYPE_VERTEX]        = "vulkan/draw/VertexFetch.vert";
-               testSpec.shaders[glu::SHADERTYPE_FRAGMENT]      = "vulkan/draw/VertexFetch.frag";
-               testSpec.shaders[glu::SHADERTYPE_COMPUTE]       = "vulkan/draw/ConcurrentPayload.comp";
+               {
+                       { glu::SHADERTYPE_VERTEX,       "vulkan/draw/VertexFetch.vert" },
+                       { glu::SHADERTYPE_FRAGMENT,     "vulkan/draw/VertexFetch.frag" },
+                       { glu::SHADERTYPE_COMPUTE,      "vulkan/draw/ConcurrentPayload.comp" }
+               },
+               VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
+               m_useDynamicRendering
+       };
 
-               testSpec.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-               addChild(new InstanceFactory<ConcurrentDraw>(m_testCtx, "compute_and_triangle_list", "Draws triangle list while running a compute shader", testSpec));
-       }
+       addChild(new InstanceFactory<ConcurrentDraw, FunctionSupport1<ConcurrentDraw::TestSpec>>(m_testCtx, "compute_and_triangle_list", "Draws triangle list while running a compute shader", testSpec, FunctionSupport1<ConcurrentDraw::TestSpec>::Args(checkSupport, testSpec)));
 }
 
 }      // DrawTests
index 8145905..b1d0695 100644 (file)
@@ -33,14 +33,16 @@ namespace Draw
 class ConcurrentDrawTests : public tcu::TestCaseGroup
 {
 public:
-                                               ConcurrentDrawTests             (tcu::TestContext &testCtx);
-                                               ~ConcurrentDrawTests    (void);
+                                               ConcurrentDrawTests             (tcu::TestContext &testCtx, bool useDynamicRendering);
+                                               ~ConcurrentDrawTests    (void) = default;
        void                            init                                    (void);
 
 private:
        ConcurrentDrawTests                                                     (const ConcurrentDrawTests &other);
        ConcurrentDrawTests&    operator=                       (const ConcurrentDrawTests &other);
 
+private:
+       const bool m_useDynamicRendering;
 };
 } // Draw
 } // vkt
index 8bb6ceb..8f99a47 100644 (file)
@@ -252,7 +252,7 @@ bool isUnormDepthFormat(VkFormat format)
 
 class DepthClampTestInstance : public TestInstance {
 public:
-                                                               DepthClampTestInstance  (Context& context, const TestParams& params, const VkFormat format, const float epsilon);
+                                                               DepthClampTestInstance  (Context& context, const TestParams& params, const VkFormat format, const float epsilon, bool useDynamicRendering);
        tcu::TestStatus                         iterate                                 ();
 
 private:
@@ -263,6 +263,7 @@ private:
        const float                                                                                     m_epsilon;
        std::vector<VkViewport>                                                         m_viewportVect;
        std::vector<VkRect2D>                                                           m_scissorVect;
+       const bool                                                                                      m_useDynamicRendering;
        SharedPtr<Image>                                                                        m_depthTargetImage;
        Move<VkImageView>                                                                       m_depthTargetView;
        SharedPtr<Buffer>                                                                       m_vertexBuffer;
@@ -280,13 +281,14 @@ static const Vec4                                 vertices[]                      = {
 };
 static const VkPrimitiveTopology       verticesTopology        = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 
-DepthClampTestInstance::DepthClampTestInstance (Context& context, const TestParams& params, const VkFormat format, const float epsilon)
+DepthClampTestInstance::DepthClampTestInstance (Context& context, const TestParams& params, const VkFormat format, const float epsilon, bool useDynamicRendering)
        : TestInstance(context)
        , m_params(params)
        , m_format(format)
        , m_epsilon(epsilon)
        , m_viewportVect(params.viewportData.size(), VkViewport())
        , m_scissorVect(params.viewportData.size(), VkRect2D())
+       , m_useDynamicRendering(useDynamicRendering)
 {
        const DeviceInterface&          vk                                                              = m_context.getDeviceInterface();
        const VkDevice                          device                                                  = m_context.getDevice();
@@ -347,12 +349,17 @@ DepthClampTestInstance::DepthClampTestInstance (Context& context, const TestPara
                deMemcpy(m_vertexBuffer->getBoundMemory().getHostPtr(), testVertices, static_cast<std::size_t>(dataSize));
                flushMappedMemoryRange(vk, device, m_vertexBuffer->getBoundMemory().getMemory(), m_vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
        }
-       // Render pass
-       {
-               const VkImageUsageFlags         targetImageUsageFlags                                           = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
-               const ImageCreateInfo           targetImageCreateInfo                                           (VK_IMAGE_TYPE_2D, m_format, { WIDTH, HEIGHT, 1u }, 1u, 1u,     VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_TILING_OPTIMAL, targetImageUsageFlags);
-               m_depthTargetImage                                                                                                              = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), queueFamilyIndex);
 
+       const VkImageUsageFlags         targetImageUsageFlags                                           = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+       const ImageCreateInfo           targetImageCreateInfo                                           (VK_IMAGE_TYPE_2D, m_format, { WIDTH, HEIGHT, 1u }, 1u, 1u,     VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_TILING_OPTIMAL, targetImageUsageFlags);
+       m_depthTargetImage                                                                                                              = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), queueFamilyIndex);
+
+       const ImageViewCreateInfo       depthTargetViewInfo                                                     (m_depthTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_format);
+       m_depthTargetView = createImageView(vk, device, &depthTargetViewInfo);
+
+       // Render pass and framebuffer
+       if (!m_useDynamicRendering)
+       {
                RenderPassCreateInfo            renderPassCreateInfo;
                renderPassCreateInfo.addAttachment(AttachmentDescription(
                        m_format,                                                                                               // format
@@ -376,15 +383,11 @@ DepthClampTestInstance::DepthClampTestInstance (Context& context, const TestPara
                        0u,                                                                     // preserveAttachmentCount
                        DE_NULL));                                                      // preserveAttachments
                m_renderPass                                                                                                                    = createRenderPass(vk, device, &renderPassCreateInfo);
-       }
-
-       const ImageViewCreateInfo                                       depthTargetViewInfo                             (m_depthTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_format);
-       m_depthTargetView                                                                                                                       = createImageView(vk, device, &depthTargetViewInfo);
 
-       const std::vector<VkImageView>                          depthAttachments                                { *m_depthTargetView };
-       FramebufferCreateInfo                                           framebufferCreateInfo                   (*m_renderPass, depthAttachments, WIDTH, HEIGHT, 1);
-
-       m_framebuffer                                                                                                                           = createFramebuffer(vk, device, &framebufferCreateInfo);
+               const std::vector<VkImageView>                          depthAttachments                        { *m_depthTargetView };
+               FramebufferCreateInfo                                           framebufferCreateInfo           (*m_renderPass, depthAttachments, WIDTH, HEIGHT, 1);
+               m_framebuffer                                                                                                                   = createFramebuffer(vk, device, &framebufferCreateInfo);
+       }
 
        // Vertex input
        const VkVertexInputBindingDescription           vertexInputBindingDescription   =
@@ -440,6 +443,19 @@ DepthClampTestInstance::DepthClampTestInstance (Context& context, const TestPara
        pipelineCreateInfo.addState (PipelineCreateInfo::MultiSampleState       ());
        pipelineCreateInfo.addState (PipelineCreateInfo::DynamicState           (dynamicStates));
 
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               0u,
+               DE_NULL,
+               m_format
+       };
+
+       if (m_useDynamicRendering)
+               pipelineCreateInfo.pNext = &renderingCreateInfo;
+
        m_pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
 }
 
@@ -465,9 +481,9 @@ tcu::ConstPixelBufferAccess DepthClampTestInstance::draw ()
 
        const VkImageAspectFlagBits                     aspectBits                      = (VkImageAspectFlagBits)(isCombinedType ? VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT : VK_IMAGE_ASPECT_DEPTH_BIT);
        const ImageSubresourceRange                     subresourceRange        (aspectBits);
-       const VkClearDepthStencilValue          clearDepth                  = makeClearDepthStencilValue(initialClearDepth, 0u);
+       const VkClearValue                                      clearDepth                      = makeClearValueDepthStencil(initialClearDepth, 0u);
 
-       vk.cmdClearDepthStencilImage(*cmdBuffer, m_depthTargetImage->object(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clearDepth, 1, &subresourceRange);
+       vk.cmdClearDepthStencilImage(*cmdBuffer, m_depthTargetImage->object(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clearDepth.depthStencil, 1, &subresourceRange);
 
        transition2DImage(vk, *cmdBuffer, m_depthTargetImage->object(), aspectBits,
                                          VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
@@ -490,13 +506,52 @@ tcu::ConstPixelBufferAccess DepthClampTestInstance::draw ()
                vk.cmdSetScissor (*cmdBuffer, index, 1u, &m_scissorVect[index]);
        }
 
-       beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, WIDTH, HEIGHT));
+       const VkRect2D renderArea = makeRect2D(0, 0, WIDTH, HEIGHT);
+       if (m_useDynamicRendering)
+       {
+               VkRenderingAttachmentInfoKHR depthAttachment
+               {
+                       VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,                                                                // VkStructureType                                              sType;
+                       DE_NULL,                                                                                                                                                // const void*                                                  pNext;
+                       *m_depthTargetView,                                                                                                                             // VkImageView                                                  imageView;
+                       VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,                                                               // VkImageLayout                                                imageLayout;
+                       VK_RESOLVE_MODE_NONE,                                                                                                                   // VkResolveModeFlagBits                                resolveMode;
+                       DE_NULL,                                                                                                                                                // VkImageView                                                  resolveImageView;
+                       VK_IMAGE_LAYOUT_UNDEFINED,                                                                                                              // VkImageLayout                                                resolveImageLayout;
+                       VK_ATTACHMENT_LOAD_OP_LOAD,                                                                                                             // VkAttachmentLoadOp                                   loadOp;
+                       VK_ATTACHMENT_STORE_OP_STORE,                                                                                                   // VkAttachmentStoreOp                                  storeOp;
+                       clearDepth                                                                                                                                              // VkClearValue                                                 clearValue;
+               };
+
+               VkRenderingInfoKHR renderingInfo
+               {
+                       VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
+                       DE_NULL,
+                       0u,                                                                                                                                                             // VkRenderingFlagsKHR                                  flags;
+                       renderArea,                                                                                                                                             // VkRect2D                                                             renderArea;
+                       1u,                                                                                                                                                             // deUint32                                                             layerCount;
+                       0u,                                                                                                                                                             // deUint32                                                             viewMask;
+                       0u,                                                                                                                                                             // deUint32                                                             colorAttachmentCount;
+                       DE_NULL,                                                                                                                                                // const VkRenderingAttachmentInfoKHR*  pColorAttachments;
+                       &depthAttachment,                                                                                                                               // const VkRenderingAttachmentInfoKHR*  pDepthAttachment;
+                       DE_NULL,                                                                                                                                                // const VkRenderingAttachmentInfoKHR*  pStencilAttachment;
+               };
+
+               vk.cmdBeginRenderingKHR(*cmdBuffer, &renderingInfo);
+       }
+       else
+               beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, WIDTH, HEIGHT));
+
        vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
        const VkDeviceSize              offset                                                  = 0;
        const VkBuffer                  buffer                                                  = m_vertexBuffer->object();
        vk.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &buffer, &offset);
        vk.cmdDraw(*cmdBuffer, DE_LENGTH_OF_ARRAY(vertices), 1, 0, 0);
-       endRenderPass(vk, *cmdBuffer);
+
+       if (m_useDynamicRendering)
+               endRendering(vk, *cmdBuffer);
+       else
+               endRenderPass(vk, *cmdBuffer);
 
        transition2DImage(vk, *cmdBuffer, m_depthTargetImage->object(), aspectBits,
                                          VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
@@ -552,11 +607,12 @@ tcu::TestStatus DepthClampTestInstance::iterate (void)
 class DepthClampTest : public TestCase
 {
 public:
-       DepthClampTest (tcu::TestContext &testCtx, const string& name, const string& description, const TestParams &params, const VkFormat format, const float epsilon)
+       DepthClampTest (tcu::TestContext &testCtx, const string& name, const string& description, const TestParams &params, const VkFormat format, const float epsilon, bool useDynamicRendering)
                : TestCase      (testCtx, name, description)
                , m_params(params)
                , m_format(format)
                , m_epsilon(epsilon)
+               , m_useDynamicRendering(useDynamicRendering)
        {
        }
 
@@ -624,17 +680,21 @@ public:
                {
                        TCU_THROW(NotSupportedError, "Format not supported");
                }
+
+               if (m_useDynamicRendering)
+                       context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
        }
 
        virtual TestInstance* createInstance (Context& context) const
        {
-               return new DepthClampTestInstance(context, m_params, m_format, m_epsilon);
+               return new DepthClampTestInstance(context, m_params, m_format, m_epsilon, m_useDynamicRendering);
        }
 
 private:
        const TestParams        m_params;
        const VkFormat          m_format;
        const float                     m_epsilon;
+       const bool                      m_useDynamicRendering;
 };
 
 std::string getFormatCaseName (VkFormat format)
@@ -642,7 +702,7 @@ std::string getFormatCaseName (VkFormat format)
        return de::toLower(de::toString(getFormatStr(format)).substr(10));
 }
 
-void createTests (tcu::TestCaseGroup* testGroup)
+void createTests (tcu::TestCaseGroup* testGroup, bool useDynamicRendering)
 {
        for(int i = 0; i < DE_LENGTH_OF_ARRAY(depthStencilImageFormatsToTest); ++i)
        {
@@ -654,15 +714,15 @@ void createTests (tcu::TestCaseGroup* testGroup)
                        if ((params.skipSNorm && vk::isSnormFormat(format)) || (params.skipUNorm && isUnormDepthFormat(format)))
                                continue;
                        const auto      testCaseName    = formatCaseName + params.testNameSuffix;
-                       testGroup->addChild(new DepthClampTest(testGroup->getTestContext(), testCaseName, "Depth clamp", params, format, epsilon));
+                       testGroup->addChild(new DepthClampTest(testGroup->getTestContext(), testCaseName, "Depth clamp", params, format, epsilon, useDynamicRendering));
                }
        }
 }
 }      // anonymous
 
-tcu::TestCaseGroup*    createDepthClampTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup*    createDepthClampTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "depth_clamp", "Depth Clamp Tests", createTests);
+       return createTestGroup(testCtx, "depth_clamp", "Depth Clamp Tests", createTests, useDynamicRendering);
 }
 }      // Draw
 }      // vkt
index 33bb669..df351b5 100644 (file)
@@ -32,7 +32,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*    createDepthClampTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*    createDepthClampTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 }      // Draw
 }      // vkt
index 480ff1b..4793803 100644 (file)
@@ -61,6 +61,7 @@ struct DrawParams
        string  fragShader;
        string  refVertShader;
        string  refFragShader;
+       bool    useDynamicRendering;
 };
 
 class DrawTestInstance : public TestInstance
@@ -95,6 +96,7 @@ class DrawTestCase : public TestCase
                                                                DrawTestCase            (tcu::TestContext& context, const char* name, const char* desc, const DrawParams data);
                                                                ~DrawTestCase           (void);
        virtual void                            initPrograms            (SourceCollections& programCollection) const;
+       virtual void                            checkSupport            (Context& context) const;
        virtual TestInstance*           createInstance          (Context& context) const;
 
 private:
@@ -151,6 +153,12 @@ void DrawTestCase::initPrograms (SourceCollections& programCollection) const
        programCollection.glslSources.add("fragNoPerspective") << glu::FragmentSource(fragShader.specialize(noPerspective));
 }
 
+void DrawTestCase::checkSupport(Context& context) const
+{
+       if (m_data.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+}
+
 TestInstance* DrawTestCase::createInstance (Context& context) const
 {
        return new DrawTestInstance(context, m_data);
@@ -174,6 +182,7 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                Move<VkCommandBuffer>                   cmdBuffer                               = allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
                const Unique<VkShaderModule>    vs                                              (createShaderModule(vk, device, m_context.getBinaryCollection().get(vertShaderNames[frameIdx].c_str()), 0));
                const Unique<VkShaderModule>    fs                                              (createShaderModule(vk, device, m_context.getBinaryCollection().get(fragShaderNames[frameIdx].c_str()), 0));
+               const VkFormat                                  targetImageFormat               = VK_FORMAT_R8G8B8A8_UNORM;
                de::SharedPtr<Buffer>                   vertexBuffer;
                Move<VkRenderPass>                              renderPass;
                Move<VkImageView>                               colorTargetView;
@@ -183,18 +192,19 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                // Create color buffer image.
                {
                        const VkExtent3D                                targetImageExtent               = { WIDTH, HEIGHT, 1 };
-                       const ImageCreateInfo                   targetImageCreateInfo   (VK_IMAGE_TYPE_2D, VK_FORMAT_R8G8B8A8_UNORM, targetImageExtent, 1, 1, VK_SAMPLE_COUNT_1_BIT,
+                       const ImageCreateInfo                   targetImageCreateInfo   (VK_IMAGE_TYPE_2D, targetImageFormat, targetImageExtent, 1, 1, VK_SAMPLE_COUNT_1_BIT,
                                VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT);
                        colorTargetImages[frameIdx]                                                             = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
                }
 
+               const ImageViewCreateInfo colorTargetViewInfo(colorTargetImages[frameIdx]->object(), VK_IMAGE_VIEW_TYPE_2D, targetImageFormat);
+               colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
+
                // Create render pass and frame buffer.
+               if (!m_data.useDynamicRendering)
                {
-                       const ImageViewCreateInfo               colorTargetViewInfo             (colorTargetImages[frameIdx]->object(), VK_IMAGE_VIEW_TYPE_2D, VK_FORMAT_R8G8B8A8_UNORM);
-                       colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
-
                        RenderPassCreateInfo                    renderPassCreateInfo;
-                       renderPassCreateInfo.addAttachment(AttachmentDescription(VK_FORMAT_R8G8B8A8_UNORM,
+                       renderPassCreateInfo.addAttachment(AttachmentDescription(targetImageFormat,
                                                                                                                                         VK_SAMPLE_COUNT_1_BIT,
                                                                                                                                         VK_ATTACHMENT_LOAD_OP_LOAD,
                                                                                                                                         VK_ATTACHMENT_STORE_OP_STORE,
@@ -215,13 +225,10 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                                                                                                                           0,
                                                                                                                           DE_NULL));
 
-                       vector<VkImageView>                             colorAttachments                (1);
-
-                       renderPass                      = createRenderPass(vk, device, &renderPassCreateInfo);
-                       colorAttachments[0]     = *colorTargetView;
+                       renderPass = createRenderPass(vk, device, &renderPassCreateInfo);
 
+                       vector<VkImageView>                             colorAttachments                { *colorTargetView };
                        const FramebufferCreateInfo             framebufferCreateInfo   (*renderPass, colorAttachments, WIDTH, HEIGHT, 1);
-
                        framebuffer     = createFramebuffer(vk, device, &framebufferCreateInfo);
                }
 
@@ -281,13 +288,26 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                        pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
                        pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState());
 
+                       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+                       {
+                               vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+                               DE_NULL,
+                               0u,
+                               1u,
+                               &targetImageFormat,
+                               vk::VK_FORMAT_UNDEFINED
+                       };
+
+                       if (m_data.useDynamicRendering)
+                               pipelineCreateInfo.pNext = &renderingCreateInfo;
+
                        pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
                }
 
                // Queue draw and read results.
                {
                        const VkQueue                           queue                           = m_context.getUniversalQueue();
-                       const VkClearColorValue         clearColor                      = { { 0.0f, 0.0f, 0.0f, 1.0f } };
+                       const VkClearValue                      clearColor                      = { { { 0.0f, 0.0f, 0.0f, 1.0f } } };
                        const ImageSubresourceRange subresourceRange    (VK_IMAGE_ASPECT_COLOR_BIT);
                        const VkMemoryBarrier           memBarrier                      =
                        {
@@ -307,17 +327,26 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                                                                                  vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT);
 
                        vk.cmdClearColorImage(*cmdBuffer, colorTargetImages[frameIdx]->object(),
-                               VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
+                               VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &subresourceRange);
 
                        vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT,
                                VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
                                0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
 
-                       beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, renderArea);
+                       if (m_data.useDynamicRendering)
+                               beginRendering(vk, *cmdBuffer, *colorTargetView, renderArea, clearColor);
+                       else
+                               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, renderArea);
+
                        vk.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &buffer, &vertexBufferOffset);
                        vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
                        vk.cmdDraw(*cmdBuffer, 3u, 1u, 0u, 0u);
-                       endRenderPass(vk, *cmdBuffer);
+
+                       if (m_data.useDynamicRendering)
+                               endRendering(vk, *cmdBuffer);
+                       else
+                               endRenderPass(vk, *cmdBuffer);
+
                        endCommandBuffer(vk, *cmdBuffer);
 
                        submitCommandsAndWait(vk, device, queue, cmdBuffer.get());
@@ -334,14 +363,14 @@ tcu::TestStatus DrawTestInstance::iterate (void)
        return tcu::TestStatus(res, qpGetTestResultName(res));
 }
 
-void createTests (tcu::TestCaseGroup* testGroup)
+void createTests (tcu::TestCaseGroup* testGroup, bool useDynamicRendering)
 {
        tcu::TestContext&       testCtx = testGroup->getTestContext();
-       const DrawParams        paramsFlat0     = { "vert", "fragFlatColor", "vertFlatColor", "fragFlatColor" };
-       const DrawParams        paramsFlat1     = { "vertFlatColor", "frag", "vert", "frag" };
+       const DrawParams        paramsFlat0     = { "vert", "fragFlatColor", "vertFlatColor", "fragFlatColor", useDynamicRendering };
+       const DrawParams        paramsFlat1     = { "vertFlatColor", "frag", "vert", "frag", useDynamicRendering };
 
-       const DrawParams        paramsNoPerspective0    = { "vert", "fragNoPerspective", "vertNoPerspective", "fragNoPerspective" };
-       const DrawParams        paramsNoPerspective1    = { "vertNoPerspective", "frag", "vert", "frag" };
+       const DrawParams        paramsNoPerspective0    = { "vert", "fragNoPerspective", "vertNoPerspective", "fragNoPerspective", useDynamicRendering };
+       const DrawParams        paramsNoPerspective1    = { "vertNoPerspective", "frag", "vert", "frag", useDynamicRendering };
 
        testGroup->addChild(new DrawTestCase(testCtx, "flat_0", "Mismatching flat interpolation testcase 0.", paramsFlat0));
        testGroup->addChild(new DrawTestCase(testCtx, "flat_1", "Mismatching flat interpolation testcase 1.", paramsFlat1));
@@ -352,9 +381,9 @@ void createTests (tcu::TestCaseGroup* testGroup)
 
 }      // anonymous
 
-tcu::TestCaseGroup*    createDifferingInterpolationTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup*    createDifferingInterpolationTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "differing_interpolation", "Tests for mismatched interpolation decorations.", createTests);
+       return createTestGroup(testCtx, "differing_interpolation", "Tests for mismatched interpolation decorations.", createTests, useDynamicRendering);
 }
 
 }      // Draw
index 3e0521d..3441b37 100644 (file)
@@ -33,7 +33,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*    createDifferingInterpolationTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*    createDifferingInterpolationTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index a812a10..a3ba82e 100644 (file)
@@ -36,6 +36,7 @@
 #include "vktTestGroupUtil.hpp"
 #include "vktTestCase.hpp"
 #include "vktDrawBufferObjectUtil.hpp"
+#include "vktDrawImageObjectUtil.hpp"
 
 #include "tcuTestCase.hpp"
 #include "tcuVector.hpp"
@@ -86,6 +87,7 @@ struct TestParams
        deUint32                numRectangles;
        deBool                  dynamicDiscardRectangles;
        TestScissorMode scissorMode;
+       deBool                  useDynamicRendering;
 };
 
 template<typename T>
@@ -318,11 +320,11 @@ Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&                     vk,
                VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,                   // VkStructureType                                                              sType;
                DE_NULL,                                                                                                                // const void*                                                                  pNext;
                0u,                                                                                                                             // VkPipelineDynamicStateCreateFlags                    flags;
-           (deUint32)dynamicStates.size(),                                                                     // deUint32                                                                             dynamicStateCount;
+               (deUint32)dynamicStates.size(),                                                                 // deUint32                                                                             dynamicStateCount;
                dynamicStates.data()                                                                                    // const VkDynamicState*                                                pDynamicStates;
        };
 
-       const VkGraphicsPipelineCreateInfo graphicsPipelineInfo =
+       VkGraphicsPipelineCreateInfo graphicsPipelineInfo =
        {
                VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,                                // VkStructureType                                                                      sType;
                &discardRectangleStateCreateInfo,                                                               // const void*                                                                          pNext;
@@ -345,6 +347,21 @@ Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&                      vk,
                0,                                                                                                                              // deInt32                                                                                      basePipelineIndex;
        };
 
+       VkFormat colorAttachmentFormat = VK_FORMAT_R8G8B8A8_UNORM;
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               &discardRectangleStateCreateInfo,
+               0u,
+               1u,
+               &colorAttachmentFormat,
+               VK_FORMAT_UNDEFINED
+       };
+
+       // when pipeline is created without render pass we are using dynamic rendering
+       if (renderPass == DE_NULL)
+               graphicsPipelineInfo.pNext = &renderingCreateInfo;
+
        return createGraphicsPipeline(vk, device, DE_NULL, &graphicsPipelineInfo);
 }
 
@@ -537,10 +554,15 @@ tcu::TestStatus DiscardRectanglesTestInstance::iterate    (void)
 
                m_vertexModule                          = createShaderModule    (vk, device, m_context.getBinaryCollection().get("vert"), 0u);
                m_fragmentModule                        = createShaderModule    (vk, device, m_context.getBinaryCollection().get("frag"), 0u);
-               m_renderPass                            = makeRenderPass                (vk, device, colorFormat);
-               m_framebuffer                           = makeFramebuffer               (vk, device, *m_renderPass, m_colorAttachment.get(),
+
+               if (!m_params.useDynamicRendering)
+               {
+                       m_renderPass                    = makeRenderPass                (vk, device, colorFormat);
+                       m_framebuffer                   = makeFramebuffer               (vk, device, *m_renderPass, m_colorAttachment.get(),
                                                                                                                         static_cast<deUint32>(m_renderSize.x()),
                                                                                                                         static_cast<deUint32>(m_renderSize.y()));
+               }
+
                m_pipelineLayout                        = makePipelineLayout    (vk, device);
 
                generateDiscardRectangles(m_renderSize, m_params.numRectangles, m_rectangles);
@@ -561,17 +583,27 @@ tcu::TestStatus DiscardRectanglesTestInstance::iterate    (void)
                        makeOffset2D(0, 0),
                        makeExtent2D(m_renderSize.x(), m_renderSize.y()),
                };
-               const VkRenderPassBeginInfo renderPassBeginInfo =
+
+               if (m_params.useDynamicRendering)
                {
-                       VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,               // VkStructureType         sType;
-                       DE_NULL,                                                                                // const void*             pNext;
-                       *m_renderPass,                                                                  // VkRenderPass            renderPass;
-                       *m_framebuffer,                                                                 // VkFramebuffer           framebuffer;
-                       renderArea,                                                                             // VkRect2D                renderArea;
-                       1u,                                                                                             // uint32_t                clearValueCount;
-                       &clearValue,                                                                    // const VkClearValue*     pClearValues;
-               };
-               vk.cmdBeginRenderPass(*m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+                       initialTransitionColor2DImage(vk, *m_cmdBuffer, *m_colorImage, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                                                                                 VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT);
+                       beginRendering(vk, *m_cmdBuffer, *m_colorAttachment, renderArea, clearValue, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_ATTACHMENT_LOAD_OP_CLEAR);
+               }
+               else
+               {
+                       const VkRenderPassBeginInfo renderPassBeginInfo =
+                       {
+                               VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,               // VkStructureType         sType;
+                               DE_NULL,                                                                                // const void*             pNext;
+                               *m_renderPass,                                                                  // VkRenderPass            renderPass;
+                               *m_framebuffer,                                                                 // VkFramebuffer           framebuffer;
+                               renderArea,                                                                             // VkRect2D                renderArea;
+                               1u,                                                                                             // uint32_t                clearValueCount;
+                               &clearValue,                                                                    // const VkClearValue*     pClearValues;
+                       };
+                       vk.cmdBeginRenderPass(*m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+               }
 
                vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
                {
@@ -588,7 +620,11 @@ tcu::TestStatus DiscardRectanglesTestInstance::iterate     (void)
                        vk.cmdSetScissor(*m_cmdBuffer, 0u, 1u, &rectScissor);
                }
                vk.cmdDraw(*m_cmdBuffer, static_cast<deUint32>(m_vertices.size()), 1u, 0u, 0u); // two triangles
-               vk.cmdEndRenderPass(*m_cmdBuffer);
+
+               if (m_params.useDynamicRendering)
+                       vk.cmdEndRenderingKHR(*m_cmdBuffer);
+               else
+                       vk.cmdEndRenderPass(*m_cmdBuffer);
 
                copyImageToBuffer(vk, *m_cmdBuffer, *m_colorImage, m_colorBuffer->object(), tcu::IVec2(m_renderSize.x(), m_renderSize.y()), VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, colorSubresourceRange.layerCount);
 
@@ -677,6 +713,8 @@ void DiscardRectanglesTestCase::initPrograms(SourceCollections& programCollectio
 void DiscardRectanglesTestCase::checkSupport (Context& context) const
 {
        context.requireDeviceFunctionality("VK_EXT_discard_rectangles");
+       if (m_params.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
 }
 
 TestInstance* DiscardRectanglesTestCase::createInstance (Context& context) const
@@ -684,7 +722,7 @@ TestInstance* DiscardRectanglesTestCase::createInstance (Context& context) const
        return new DiscardRectanglesTestInstance(context, m_params);
 }
 
-void createTests (tcu::TestCaseGroup* testGroup)
+void createTests (tcu::TestCaseGroup* testGroup, bool useDynamicRendering)
 {
        tcu::TestContext&       testCtx                                                                                 = testGroup->getTestContext();
        deUint32                        numRect [NUM_RECT_TESTS]                                                = { 1, 2, 3, 4,  8, 16};
@@ -707,6 +745,7 @@ void createTests (tcu::TestCaseGroup* testGroup)
                                        params.dynamicDiscardRectangles         = dynamic ? DE_TRUE : DE_FALSE;
                                        params.scissorMode                                      = (TestScissorMode) scissor;
                                        params.numRectangles                            = numRect[rect];
+                                       params.useDynamicRendering                      = useDynamicRendering;
                                        name << dynamicName[dynamic] << scissorName[scissor] << modeName[mode] << "rect_" << numRect[rect];
 
                                        testGroup->addChild(new DiscardRectanglesTestCase(testCtx, name.str().c_str(), "", params));
@@ -717,9 +756,9 @@ void createTests (tcu::TestCaseGroup* testGroup)
 }
 }      // Anonymous
 
-tcu::TestCaseGroup* createDiscardRectanglesTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup* createDiscardRectanglesTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "discard_rectangles", "Discard Rectangles tests", createTests);
+       return createTestGroup(testCtx, "discard_rectangles", "Discard Rectangles tests", createTests, useDynamicRendering);
 }
 
 }      // Draw
index 46e4589..158886b 100644 (file)
@@ -32,7 +32,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup* createDiscardRectanglesTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup* createDiscardRectanglesTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index 1766a00..5f9d5e7 100644 (file)
@@ -94,6 +94,7 @@ struct DrawParams
        Interpolation                           interpolation;
        vk::VkSampleCountFlagBits       samples;
        AuxiliaryQualifier                      auxiliaryStorage;
+       bool                                            useDynamicRendering;
 };
 
 const char* interpolationToString (Interpolation interpolation)
@@ -203,7 +204,7 @@ class DrawTestCase : public TestCase
                                                                ~DrawTestCase           (void);
        virtual void                            initPrograms            (SourceCollections& programCollection) const;
        virtual TestInstance*           createInstance          (Context& context) const;
-       virtual void                            checkSupport    (Context& context) const;
+       virtual void                            checkSupport            (Context& context) const;
 
 private:
        DrawParams                                      m_data;
@@ -225,6 +226,9 @@ void DrawTestCase::checkSupport(Context &context) const
 
        if ((context.getDeviceProperties().limits.framebufferColorSampleCounts & m_data.samples) == 0)
                TCU_THROW(NotSupportedError, "framebufferColorSampleCounts: sample count not supported");
+
+       if (m_data.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
 }
 
 void DrawTestCase::initPrograms (SourceCollections& programCollection) const
@@ -352,11 +356,18 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                }
        }
 
-       // Create render pass and frame buffer.
+       const ImageViewCreateInfo colorTargetViewInfo(colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, imageFormat);
+       colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
+
+       if (useMultisampling)
        {
-               const ImageViewCreateInfo               colorTargetViewInfo             (colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, imageFormat);
-               colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
+               const ImageViewCreateInfo multisamplingTargetViewInfo(multisampleTargetImage->object(), vk::VK_IMAGE_VIEW_TYPE_2D, imageFormat);
+               multisampleTargetView = createImageView(vk, device, &multisamplingTargetViewInfo);
+       }
 
+       // Create render pass
+       if (!m_data.useDynamicRendering)
+       {
                RenderPassCreateInfo                    renderPassCreateInfo;
                renderPassCreateInfo.addAttachment(AttachmentDescription(imageFormat,
                                                                                                                                 VK_SAMPLE_COUNT_1_BIT,
@@ -369,19 +380,9 @@ tcu::TestStatus DrawTestInstance::iterate (void)
 
                const VkAttachmentReference             colorAttachmentRef                      = { 0u, VK_IMAGE_LAYOUT_GENERAL };
                const VkAttachmentReference             multisampleAttachmentRef        = { 1u, VK_IMAGE_LAYOUT_GENERAL };
-               vector<VkImageView>                             colorAttachments;
-               colorAttachments.push_back(*colorTargetView);
 
                if (useMultisampling)
                {
-                       const ImageViewCreateInfo               multisamplingTargetViewInfo             (multisampleTargetImage->object(),
-                                                                                                                                                        vk::VK_IMAGE_VIEW_TYPE_2D,
-                                                                                                                                                        imageFormat);
-
-
-                       multisampleTargetView = createImageView(vk, device, &multisamplingTargetViewInfo);
-                       colorAttachments.push_back(*multisampleTargetView);
-
                        renderPassCreateInfo.addAttachment(AttachmentDescription(imageFormat,
                                                                                                                                         m_data.samples,
                                                                                                                                         vk::VK_ATTACHMENT_LOAD_OP_CLEAR,
@@ -403,10 +404,15 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                                                                                                                   0,
                                                                                                                   DE_NULL));
 
-               renderPass                      = createRenderPass(vk, device, &renderPassCreateInfo);
+               renderPass = createRenderPass(vk, device, &renderPassCreateInfo);
+
+               // Create framebuffer
+               vector<VkImageView> colorAttachments { *colorTargetView };
+               if (useMultisampling)
+                       colorAttachments.push_back(*multisampleTargetView);
 
-               const FramebufferCreateInfo             framebufferCreateInfo   (*renderPass, colorAttachments, WIDTH, HEIGHT, 1);
-               framebuffer     = createFramebuffer(vk, device, &framebufferCreateInfo);
+               const FramebufferCreateInfo framebufferCreateInfo(*renderPass, colorAttachments, WIDTH, HEIGHT, 1);
+               framebuffer = createFramebuffer(vk, device, &framebufferCreateInfo);
        }
 
        // Create vertex buffer.
@@ -459,7 +465,7 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                        .addType(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)
                        .build(vk, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
 
-           descriptorSet = makeDescriptorSet(vk, device, *descriptorPool, *descriptorSetLayout);
+               descriptorSet = makeDescriptorSet(vk, device, *descriptorPool, *descriptorSetLayout);
 
                const VkDescriptorBufferInfo    bufferInfo =
                {
@@ -503,6 +509,19 @@ tcu::TestStatus DrawTestInstance::iterate (void)
                pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
                pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState(m_data.samples));
 
+               vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+                       DE_NULL,
+                       0u,
+                       1u,
+                       &imageFormat,
+                       VK_FORMAT_UNDEFINED
+               };
+
+               if (m_data.useDynamicRendering)
+                       pipelineCreateInfo.pNext = &renderingCreateInfo;
+
                pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
        }
 
@@ -517,28 +536,69 @@ tcu::TestStatus DrawTestInstance::iterate (void)
 
                vector<VkClearValue>            clearColors;
                clearColors.push_back(makeClearValueColor(clearColor));
-
                if (useMultisampling)
                        clearColors.push_back(makeClearValueColor(clearColor));
 
                beginCommandBuffer(vk, *cmdBuffer, 0u);
-               const VkRenderPassBeginInfo renderPassBeginInfo =
+
+               if (m_data.useDynamicRendering)
                {
-                       VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,       // VkStructureType         sType;
-                       DE_NULL,                                                                        // const void*             pNext;
-                       *renderPass,                                                            // VkRenderPass            renderPass;
-                       *framebuffer,                                                           // VkFramebuffer           framebuffer;
-                       renderArea,                                                                     // VkRect2D                renderArea;
-                       (deUint32)clearColors.size(),                           // deUint32                clearValueCount;
-                       clearColors.data(),                                                     // const VkClearValue*     pClearValues;
-               };
+                       VkRenderingAttachmentInfoKHR colorAttachment
+                       {
+                               VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,                                                                // VkStructureType                                              sType;
+                               DE_NULL,                                                                                                                                                // const void*                                                  pNext;
+                               useMultisampling ? *multisampleTargetView : *colorTargetView,                                   // VkImageView                                                  imageView;
+                               VK_IMAGE_LAYOUT_GENERAL,                                                                                                                // VkImageLayout                                                imageLayout;
+                               useMultisampling ? VK_RESOLVE_MODE_AVERAGE_BIT : VK_RESOLVE_MODE_NONE,                  // VkResolveModeFlagBits                                resolveMode;
+                               useMultisampling ? *colorTargetView : DE_NULL,                                                                  // VkImageView                                                  resolveImageView;
+                               VK_IMAGE_LAYOUT_GENERAL,                                                                                                                // VkImageLayout                                                resolveImageLayout;
+                               useMultisampling ? VK_ATTACHMENT_LOAD_OP_CLEAR : VK_ATTACHMENT_LOAD_OP_LOAD,    // VkAttachmentLoadOp                                   loadOp;
+                               VK_ATTACHMENT_STORE_OP_STORE,                                                                                                   // VkAttachmentStoreOp                                  storeOp;
+                               clearColors[0]                                                                                                                                  // VkClearValue                                                 clearValue;
+                       };
+
+                       VkRenderingInfoKHR renderingInfo
+                       {
+                               VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
+                               DE_NULL,
+                               0u,                                                                                                                                                             // VkRenderingFlagsKHR                                  flags;
+                               renderArea,                                                                                                                                             // VkRect2D                                                             renderArea;
+                               1u,                                                                                                                                                             // deUint32                                                             layerCount;
+                               0u,                                                                                                                                                             // deUint32                                                             viewMask;
+                               1u,                                                                                                                                                             // deUint32                                                             colorAttachmentCount;
+                               &colorAttachment,                                                                                                                               // const VkRenderingAttachmentInfoKHR*  pColorAttachments;
+                               DE_NULL,                                                                                                                                                // const VkRenderingAttachmentInfoKHR*  pDepthAttachment;
+                               DE_NULL,                                                                                                                                                // const VkRenderingAttachmentInfoKHR*  pStencilAttachment;
+                       };
+
+                       vk.cmdBeginRenderingKHR(*cmdBuffer, &renderingInfo);
+               }
+               else
+               {
+                       const VkRenderPassBeginInfo renderPassBeginInfo =
+                       {
+                               VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,       // VkStructureType         sType;
+                               DE_NULL,                                                                        // const void*             pNext;
+                               *renderPass,                                                            // VkRenderPass            renderPass;
+                               *framebuffer,                                                           // VkFramebuffer           framebuffer;
+                               renderArea,                                                                     // VkRect2D                renderArea;
+                               (deUint32)clearColors.size(),                           // deUint32                clearValueCount;
+                               clearColors.data(),                                                     // const VkClearValue*     pClearValues;
+                       };
+
+                       vk.cmdBeginRenderPass(*cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+               }
 
-               vk.cmdBeginRenderPass(*cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
                vk.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &buffer, &vertexBufferOffset);
                vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
                vk.cmdBindDescriptorSets(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipelineLayout, 0u, 1u, &descriptorSet.get(), 0u, DE_NULL);
                vk.cmdDraw(*cmdBuffer, 4u, 1u, 0u, 0u);
-               endRenderPass(vk, *cmdBuffer);
+
+               if (m_data.useDynamicRendering)
+                       endRendering(vk, *cmdBuffer);
+               else
+                       endRenderPass(vk, *cmdBuffer);
+
                endCommandBuffer(vk, *cmdBuffer);
 
                submitCommandsAndWait(vk, device, queue, cmdBuffer.get());
@@ -565,7 +625,7 @@ tcu::TestStatus DrawTestInstance::iterate (void)
        return tcu::TestStatus(res, qpGetTestResultName(res));
 }
 
-void createTests (tcu::TestCaseGroup* testGroup)
+void createTests (tcu::TestCaseGroup* testGroup, bool useDynamicRendering)
 {
        tcu::TestContext&       testCtx         = testGroup->getTestContext();
 
@@ -595,7 +655,7 @@ void createTests (tcu::TestCaseGroup* testGroup)
 
        for (deUint32 sampleNdx = 0;    sampleNdx       < DE_LENGTH_OF_ARRAY(samples);                  sampleNdx++)
        for (deUint32 auxNdx    = 0;    auxNdx          < DE_LENGTH_OF_ARRAY(auxQualifiers);    auxNdx++)
-    for (deUint32 interNdx     = 0;    interNdx        < DE_LENGTH_OF_ARRAY(interTypes);               interNdx++)
+       for (deUint32 interNdx  = 0;    interNdx        < DE_LENGTH_OF_ARRAY(interTypes);               interNdx++)
        {
                if (samples[sampleNdx] == VK_SAMPLE_COUNT_1_BIT && auxQualifiers[auxNdx] != AUX_NONE)
                        continue;
@@ -605,6 +665,7 @@ void createTests (tcu::TestCaseGroup* testGroup)
                        interTypes[interNdx],
                        samples[sampleNdx],
                        auxQualifiers[auxNdx],
+                       useDynamicRendering
                };
                testGroup->addChild(new DrawTestCase(testCtx, getTestName(params).c_str(), "", params));
        }
@@ -612,9 +673,9 @@ void createTests (tcu::TestCaseGroup* testGroup)
 
 }      // anonymous
 
-tcu::TestCaseGroup*    createExplicitVertexParameterTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup*    createExplicitVertexParameterTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "explicit_vertex_parameter", "Tests for VK_AMD_shader_explicit_vertex_parameter.", createTests);
+       return createTestGroup(testCtx, "explicit_vertex_parameter", "Tests for VK_AMD_shader_explicit_vertex_parameter.", createTests, useDynamicRendering);
 }
 
 }      // Draw
index 57e74d4..ca9179a 100644 (file)
@@ -32,7 +32,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*    createExplicitVertexParameterTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*    createExplicitVertexParameterTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index 7f43bdc..f72851d 100644 (file)
@@ -69,7 +69,7 @@ public:
 };
 
 DrawIndexed::DrawIndexed (Context &context, TestSpec testSpec)
-       : DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.topology)
+       : DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.useDynamicRendering, testSpec.topology)
 {
        switch (m_topology)
        {
@@ -138,7 +138,7 @@ tcu::TestStatus DrawIndexed::iterate (void)
        const vk::VkQueue       queue   = m_context.getUniversalQueue();
        const vk::VkDevice      device  = m_context.getDevice();
 
-       beginRenderPass();
+       beginRender();
 
        const vk::VkDeviceSize dataSize = m_indexes.size() * sizeof(deUint32);
        m_indexBuffer = Buffer::createAndAlloc( m_vk, m_context.getDevice(),
@@ -162,7 +162,7 @@ tcu::TestStatus DrawIndexed::iterate (void)
 
        m_vk.cmdDrawIndexed(*m_cmdBuffer, 6, 1, 2, VERTEX_OFFSET, 0);
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
@@ -220,7 +220,7 @@ tcu::TestStatus DrawInstancedIndexed::iterate (void)
        const vk::VkQueue       queue   = m_context.getUniversalQueue();
        const vk::VkDevice      device  = m_context.getDevice();
 
-       beginRenderPass();
+       beginRender();
 
        const vk::VkDeviceSize dataSize = m_indexes.size() * sizeof(deUint32);
        m_indexBuffer = Buffer::createAndAlloc( m_vk, m_context.getDevice(),
@@ -267,7 +267,7 @@ tcu::TestStatus DrawInstancedIndexed::iterate (void)
                        break;
        }
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
@@ -314,13 +314,19 @@ tcu::TestStatus DrawInstancedIndexed::iterate (void)
        }
 
        return tcu::TestStatus(res, qpGetTestResultName(res));
+}
 
+void checkSupport(Context& context, DrawIndexed::TestSpec testSpec)
+{
+       if (testSpec.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
 }
 
 }      // anonymous
 
-DrawIndexedTests::DrawIndexedTests (tcu::TestContext &testCtx)
-       : TestCaseGroup (testCtx, "indexed_draw", "drawing indexed geometry")
+DrawIndexedTests::DrawIndexedTests (tcu::TestContext &testCtx, bool useDynamicRendering)
+       : TestCaseGroup                 (testCtx, "indexed_draw", "drawing indexed geometry")
+       , m_useDynamicRendering (useDynamicRendering)
 {
        /* Left blank on purpose */
 }
@@ -333,21 +339,27 @@ void DrawIndexedTests::init (void)
                DrawIndexed::TestSpec testSpec;
                testSpec.shaders[glu::SHADERTYPE_VERTEX] = "vulkan/draw/VertexFetch.vert";
                testSpec.shaders[glu::SHADERTYPE_FRAGMENT] = "vulkan/draw/VertexFetch.frag";
+               testSpec.useDynamicRendering = m_useDynamicRendering;
 
                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-               addChild(new InstanceFactory<DrawIndexed>(m_testCtx, "draw_indexed_triangle_list", "Draws indexed triangle list", testSpec));
+               addChild(new InstanceFactory<DrawIndexed, FunctionSupport1<DrawIndexed::TestSpec> >
+                       (m_testCtx, "draw_indexed_triangle_list", "Draws indexed triangle list", testSpec, FunctionSupport1<DrawIndexed::TestSpec>::Args(checkSupport, testSpec)));
                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-               addChild(new InstanceFactory<DrawIndexed>(m_testCtx, "draw_indexed_triangle_strip", "Draws indexed triangle strip", testSpec));
+               addChild(new InstanceFactory<DrawIndexed, FunctionSupport1<DrawIndexed::TestSpec> >
+                       (m_testCtx, "draw_indexed_triangle_strip", "Draws indexed triangle strip", testSpec, FunctionSupport1<DrawIndexed::TestSpec>::Args(checkSupport, testSpec)));
        }
        {
                DrawInstancedIndexed::TestSpec testSpec;
                testSpec.shaders[glu::SHADERTYPE_VERTEX] = "vulkan/draw/VertexFetchInstancedFirstInstance.vert";
                testSpec.shaders[glu::SHADERTYPE_FRAGMENT] = "vulkan/draw/VertexFetch.frag";
+               testSpec.useDynamicRendering = m_useDynamicRendering;
 
                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-               addChild(new InstanceFactory<DrawInstancedIndexed>(m_testCtx, "draw_instanced_indexed_triangle_list", "Draws indexed triangle list", testSpec));
+               addChild(new InstanceFactory<DrawInstancedIndexed, FunctionSupport1<DrawInstancedIndexed::TestSpec> >
+                       (m_testCtx, "draw_instanced_indexed_triangle_list", "Draws indexed triangle list", testSpec, FunctionSupport1<DrawInstancedIndexed::TestSpec>::Args(checkSupport, testSpec)));
                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-               addChild(new InstanceFactory<DrawInstancedIndexed>(m_testCtx, "draw_instanced_indexed_triangle_strip", "Draws indexed triangle strip", testSpec));
+               addChild(new InstanceFactory<DrawInstancedIndexed, FunctionSupport1<DrawInstancedIndexed::TestSpec> >
+                       (m_testCtx, "draw_instanced_indexed_triangle_strip", "Draws indexed triangle strip", testSpec, FunctionSupport1<DrawInstancedIndexed::TestSpec>::Args(checkSupport, testSpec)));
        }
 }
 
index dcc4507..87fba02 100644 (file)
@@ -33,7 +33,7 @@ namespace Draw
 class DrawIndexedTests : public tcu::TestCaseGroup
 {
 public:
-                                                       DrawIndexedTests                (tcu::TestContext &testCtx);
+                                                       DrawIndexedTests                (tcu::TestContext &testCtx, bool useDynamicRendering);
                                                        ~DrawIndexedTests               (void);
        void                                    init                                    (void);
 
@@ -41,6 +41,8 @@ private:
        DrawIndexedTests                                                                (const DrawIndexedTests &other);
        DrawIndexedTests&               operator=                               (const DrawIndexedTests &other);
 
+private:
+       const bool m_useDynamicRendering;
 };
 } // Draw
 } // vkt
index 0c45c77..68f2879 100644 (file)
@@ -248,7 +248,7 @@ void IndirectDraw::setFirstInstanceVertexBuffer (void)
 }
 
 IndirectDraw::IndirectDraw (Context &context, TestSpec testSpec)
-       : DrawTestsBaseClass                            (context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.topology)
+       : DrawTestsBaseClass                            (context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.useDynamicRendering, testSpec.topology)
        , m_testIndirectCountExt                        (testSpec.testIndirectCountExt)
        , m_indirectCountExtDrawPadding         (1u)
        , m_drawType                                            (testSpec.drawType)
@@ -474,7 +474,7 @@ tcu::TestStatus IndirectDraw::iterate (void)
                m_strideInBuffer = 2 * (deUint32)sizeof(vk::VkDrawIndexedIndirectCommand);
        }
 
-       beginRenderPass();
+       beginRender();
 
        const vk::VkDeviceSize vertexBufferOffset       = 0;
        const vk::VkBuffer vertexBuffer                         = m_vertexBuffer->object();
@@ -596,7 +596,7 @@ tcu::TestStatus IndirectDraw::iterate (void)
                        }
                }
        }
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
@@ -819,7 +819,7 @@ tcu::TestStatus IndirectDrawInstanced<FirstInstanceSupport>::iterate (void)
                m_strideInBuffer = 2 * (deUint32)sizeof(vk::VkDrawIndexedIndirectCommand);
        }
 
-       beginRenderPass();
+       beginRender();
 
        const vk::VkDeviceSize vertexBufferOffset = 0;
        const vk::VkBuffer vertexBuffer = m_vertexBuffer->object();
@@ -941,7 +941,7 @@ tcu::TestStatus IndirectDrawInstanced<FirstInstanceSupport>::iterate (void)
                        }
                }
        }
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
@@ -991,15 +991,20 @@ tcu::TestStatus IndirectDrawInstanced<FirstInstanceSupport>::iterate (void)
        return tcu::TestStatus(res, qpGetTestResultName(res));
 }
 
-void checkIndirectCountExt (Context& context)
+void checkSupport(Context& context, IndirectDraw::TestSpec testSpec)
 {
-       context.requireDeviceFunctionality("VK_KHR_draw_indirect_count");
+       if (testSpec.testIndirectCountExt != IndirectCountType::NONE)
+               context.requireDeviceFunctionality("VK_KHR_draw_indirect_count");
+
+       if (testSpec.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
 }
 
 }      // anonymous
 
-IndirectDrawTests::IndirectDrawTests (tcu::TestContext& testCtx)
-       : TestCaseGroup(testCtx, "indirect_draw", "indirect drawing simple geometry")
+IndirectDrawTests::IndirectDrawTests (tcu::TestContext& testCtx, bool useDynamicRendering)
+       : TestCaseGroup                 (testCtx, "indirect_draw", "indirect drawing simple geometry")
+       , m_useDynamicRendering (useDynamicRendering)
 {
        /* Left blank on purpose */
 }
@@ -1032,24 +1037,32 @@ void IndirectDrawTests::init (void)
                        {
                                IndirectDraw::TestSpec testSpec;
                                testSpec.drawType = static_cast<DrawType>(drawTypeIdx);
+                               testSpec.useDynamicRendering = m_useDynamicRendering;
                                testSpec.shaders[glu::SHADERTYPE_VERTEX] = "vulkan/draw/VertexFetch.vert";
                                testSpec.shaders[glu::SHADERTYPE_FRAGMENT] = "vulkan/draw/VertexFetch.frag";
+
                                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                               indirectDrawGroup->addChild(new InstanceFactory<IndirectDraw>(m_testCtx, "triangle_list", "Draws triangle list", testSpec));
+                               indirectDrawGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                       (m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
                                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                               indirectDrawGroup->addChild(new InstanceFactory<IndirectDraw>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec));
+                               indirectDrawGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                       (m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
 
                                testSpec.testIndirectCountExt = IndirectCountType::BUFFER_LIMIT;
                                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                               indirectDrawCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                               indirectDrawCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                       (m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
                                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                               indirectDrawCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                               indirectDrawCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                       (m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
 
                                testSpec.testIndirectCountExt = IndirectCountType::PARAM_LIMIT;
                                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                               indirectDrawParamCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                               indirectDrawParamCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                       (m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
                                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                               indirectDrawParamCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                               indirectDrawParamCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                       (m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
                        }
                        drawTypeGroup->addChild(indirectDrawGroup);
                        drawTypeGroup->addChild(indirectDrawCountGroup);
@@ -1063,24 +1076,32 @@ void IndirectDrawTests::init (void)
                                        IndirectDraw::TestSpec testSpec;
                                        testSpec.testFirstInstanceNdx = true;
                                        testSpec.drawType = static_cast<DrawType>(drawTypeIdx);
+                                       testSpec.useDynamicRendering = m_useDynamicRendering;
                                        testSpec.shaders[glu::SHADERTYPE_VERTEX] = "vulkan/draw/VertexFetchInstanceIndex.vert";
                                        testSpec.shaders[glu::SHADERTYPE_FRAGMENT] = "vulkan/draw/VertexFetch.frag";
+
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw>(m_testCtx, "triangle_list", "Draws triangle list", testSpec));
+                                       indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec));
+                                       indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
 
                                        testSpec.testIndirectCountExt = IndirectCountType::BUFFER_LIMIT;
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
 
                                        testSpec.testIndirectCountExt = IndirectCountType::PARAM_LIMIT;
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport1<IndirectDraw::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport1<IndirectDraw::TestSpec>::Args(checkSupport, testSpec)));
                                }
                                drawTypeGroup->addChild(indirectDrawFirstInstanceGroup);
                                drawTypeGroup->addChild(indirectDrawCountFirstInstanceGroup);
@@ -1095,28 +1116,37 @@ void IndirectDrawTests::init (void)
                                tcu::TestCaseGroup*     indirectDrawCountNoFirstInstanceGroup           = new tcu::TestCaseGroup(m_testCtx, "no_first_instance", "Use 0 as firstInstance");
                                tcu::TestCaseGroup*     indirectDrawParamCountNoFirstInstanceGroup      = new tcu::TestCaseGroup(m_testCtx, "no_first_instance", "Use 0 as firstInstance");
                                {
-                                       IndirectDrawInstanced<FirstInstanceNotSupported>::TestSpec testSpec;
+                                       typedef IndirectDrawInstanced<FirstInstanceNotSupported> IDFirstInstanceNotSupported;
+
+                                       IDFirstInstanceNotSupported::TestSpec testSpec;
                                        testSpec.drawType = static_cast<DrawType>(drawTypeIdx);
+                                       testSpec.useDynamicRendering = m_useDynamicRendering;
 
                                        testSpec.shaders[glu::SHADERTYPE_VERTEX] = "vulkan/draw/VertexFetchInstanced.vert";
                                        testSpec.shaders[glu::SHADERTYPE_FRAGMENT] = "vulkan/draw/VertexFetch.frag";
 
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported> >(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec));
+                                       indirectDrawNoFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceNotSupported, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported> >(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec));
+                                       indirectDrawNoFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceNotSupported, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec>::Args(checkSupport, testSpec)));
 
                                        testSpec.testIndirectCountExt = IndirectCountType::BUFFER_LIMIT;
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawCountNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported>, FunctionSupport0>(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawCountNoFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceNotSupported, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawCountNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported>, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawCountNoFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceNotSupported, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec>::Args(checkSupport, testSpec)));
 
                                        testSpec.testIndirectCountExt = IndirectCountType::PARAM_LIMIT;
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawParamCountNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported>, FunctionSupport0>(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawParamCountNoFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceNotSupported, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawParamCountNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported>, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawParamCountNoFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceNotSupported, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport1<IDFirstInstanceNotSupported::TestSpec>::Args(checkSupport, testSpec)));
                                }
                                indirectDrawInstancedGroup->addChild(indirectDrawNoFirstInstanceGroup);
                                indirectDrawCountInstancedGroup->addChild(indirectDrawCountNoFirstInstanceGroup);
@@ -1126,28 +1156,37 @@ void IndirectDrawTests::init (void)
                                tcu::TestCaseGroup*     indirectDrawCountFirstInstanceGroup                     = new tcu::TestCaseGroup(m_testCtx, "first_instance", "Use drawIndirectFirstInstance optional feature");
                                tcu::TestCaseGroup*     indirectDrawParamCountFirstInstanceGroup        = new tcu::TestCaseGroup(m_testCtx, "first_instance", "Use drawIndirectFirstInstance optional feature");
                                {
-                                       IndirectDrawInstanced<FirstInstanceSupported>::TestSpec testSpec;
+                                       typedef IndirectDrawInstanced<FirstInstanceSupported> IDFirstInstanceSupported;
+
+                                       IDFirstInstanceSupported::TestSpec testSpec;
                                        testSpec.drawType = static_cast<DrawType>(drawTypeIdx);
+                                       testSpec.useDynamicRendering = m_useDynamicRendering;
 
                                        testSpec.shaders[glu::SHADERTYPE_VERTEX] = "vulkan/draw/VertexFetchInstancedFirstInstance.vert";
                                        testSpec.shaders[glu::SHADERTYPE_FRAGMENT] = "vulkan/draw/VertexFetch.frag";
 
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported> >(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec));
+                                       indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceSupported, FunctionSupport1<IDFirstInstanceSupported::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport1<IDFirstInstanceSupported::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported> >(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec));
+                                       indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceSupported, FunctionSupport1<IDFirstInstanceSupported::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport1<IDFirstInstanceSupported::TestSpec>::Args(checkSupport, testSpec)));
 
                                        testSpec.testIndirectCountExt = IndirectCountType::BUFFER_LIMIT;
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported>, FunctionSupport0>(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceSupported, FunctionSupport1<IDFirstInstanceSupported::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport1<IDFirstInstanceSupported::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported>, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceSupported, FunctionSupport1<IDFirstInstanceSupported::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport1<IDFirstInstanceSupported::TestSpec>::Args(checkSupport, testSpec)));
 
                                        testSpec.testIndirectCountExt = IndirectCountType::PARAM_LIMIT;
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-                                       indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported>, FunctionSupport0>(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceSupported, FunctionSupport1<IDFirstInstanceSupported::TestSpec> >
+                                               (m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport1<IDFirstInstanceSupported::TestSpec>::Args(checkSupport, testSpec)));
                                        testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-                                       indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported>, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+                                       indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IDFirstInstanceSupported, FunctionSupport1<IDFirstInstanceSupported::TestSpec> >
+                                               (m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport1<IDFirstInstanceSupported::TestSpec>::Args(checkSupport, testSpec)));
                                }
                                indirectDrawInstancedGroup->addChild(indirectDrawFirstInstanceGroup);
                                indirectDrawCountInstancedGroup->addChild(indirectDrawCountFirstInstanceGroup);
index 3e0f88d..acc6dc9 100644 (file)
@@ -33,7 +33,7 @@ namespace Draw
 class IndirectDrawTests : public tcu::TestCaseGroup
 {
 public:
-                                               IndirectDrawTests               (tcu::TestContext &testCtx);
+                                               IndirectDrawTests               (tcu::TestContext &testCtx, bool useDynamicRendering);
                                                ~IndirectDrawTests              (void);
        void                            init                                    (void);
 
@@ -41,6 +41,8 @@ private:
        IndirectDrawTests                                                       (const IndirectDrawTests &other);
        IndirectDrawTests&      operator=                               (const IndirectDrawTests &other);
 
+private:
+       const bool m_useDynamicRendering;
 };
 } // Draw
 } // vkt
index 9c32e12..07e0b55 100644 (file)
@@ -66,6 +66,7 @@ struct TestParams
 
        DrawFunction                    function;
        vk::VkPrimitiveTopology topology;
+       deBool                                  useDynamicRendering;
 
        deBool                                  testAttribDivisor;
        deUint32                                attribDivisor;
@@ -311,6 +312,9 @@ public:
                        }
                }
 
+               if (m_params.useDynamicRendering)
+                       context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+
                if (m_params.topology == vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN &&
                        context.isDeviceFunctionalitySupported("VK_KHR_portability_subset") &&
                        !context.getPortabilitySubsetFeatures().triangleFans)
@@ -370,68 +374,67 @@ InstancedDrawInstance::InstancedDrawInstance(Context &context, TestParams params
        const ImageViewCreateInfo colorTargetViewInfo(m_colorTargetImage->object(), imageViewType, m_colorAttachmentFormat, subresourceRange);
        m_colorTargetView                                               = vk::createImageView(m_vk, device, &colorTargetViewInfo);
 
-       RenderPassCreateInfo renderPassCreateInfo;
-       renderPassCreateInfo.addAttachment(AttachmentDescription(m_colorAttachmentFormat,
-                                                                                                                        vk::VK_SAMPLE_COUNT_1_BIT,
-                                                                                                                        vk::VK_ATTACHMENT_LOAD_OP_LOAD,
-                                                                                                                        vk::VK_ATTACHMENT_STORE_OP_STORE,
-                                                                                                                        vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,
-                                                                                                                        vk::VK_ATTACHMENT_STORE_OP_STORE,
-                                                                                                                        vk::VK_IMAGE_LAYOUT_GENERAL,
-                                                                                                                        vk::VK_IMAGE_LAYOUT_GENERAL));
-
-       const vk::VkAttachmentReference colorAttachmentReference =
+       if (!m_params.useDynamicRendering)
        {
-               0,
-               vk::VK_IMAGE_LAYOUT_GENERAL
-       };
-
-       renderPassCreateInfo.addSubpass(SubpassDescription(vk::VK_PIPELINE_BIND_POINT_GRAPHICS,
-                                                                                                          0,
-                                                                                                          0,
-                                                                                                          DE_NULL,
-                                                                                                          1,
-                                                                                                          &colorAttachmentReference,
-                                                                                                          DE_NULL,
-                                                                                                          AttachmentReference(),
-                                                                                                          0,
-                                                                                                          DE_NULL));
-
-       vk::VkRenderPassMultiviewCreateInfo renderPassMultiviewCreateInfo;
-       // Bit mask that specifies which view rendering is broadcast to
-       // 0011 = Broadcast to first and second view (layer)
-       const deUint32 viewMask = 0x3;
-       // Bit mask that specifices correlation between views
-       // An implementation may use this for optimizations (concurrent render)
-       const deUint32 correlationMask = 0x3;
-
-       if (m_params.testMultiview)
-       {
-               DE_ASSERT(renderPassCreateInfo.subpassCount == 1);
-
-
+               RenderPassCreateInfo renderPassCreateInfo;
+               renderPassCreateInfo.addAttachment(AttachmentDescription(m_colorAttachmentFormat,
+                                                                                                                                vk::VK_SAMPLE_COUNT_1_BIT,
+                                                                                                                                vk::VK_ATTACHMENT_LOAD_OP_LOAD,
+                                                                                                                                vk::VK_ATTACHMENT_STORE_OP_STORE,
+                                                                                                                                vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+                                                                                                                                vk::VK_ATTACHMENT_STORE_OP_STORE,
+                                                                                                                                vk::VK_IMAGE_LAYOUT_GENERAL,
+                                                                                                                                vk::VK_IMAGE_LAYOUT_GENERAL));
+
+               const vk::VkAttachmentReference colorAttachmentReference =
+               {
+                       0,
+                       vk::VK_IMAGE_LAYOUT_GENERAL
+               };
+
+               renderPassCreateInfo.addSubpass(SubpassDescription(vk::VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                                  0,
+                                                                                                                  0,
+                                                                                                                  DE_NULL,
+                                                                                                                  1,
+                                                                                                                  &colorAttachmentReference,
+                                                                                                                  DE_NULL,
+                                                                                                                  AttachmentReference(),
+                                                                                                                  0,
+                                                                                                                  DE_NULL));
+
+               vk::VkRenderPassMultiviewCreateInfo renderPassMultiviewCreateInfo;
+               // Bit mask that specifies which view rendering is broadcast to
+               // 0011 = Broadcast to first and second view (layer)
+               const deUint32 viewMask = 0x3;
+               // Bit mask that specifices correlation between views
+               // An implementation may use this for optimizations (concurrent render)
+               const deUint32 correlationMask = 0x3;
+
+               if (m_params.testMultiview)
+               {
+                       DE_ASSERT(renderPassCreateInfo.subpassCount == 1);
+
+                       renderPassMultiviewCreateInfo.sType = vk::VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
+                       renderPassMultiviewCreateInfo.pNext = DE_NULL;
+                       renderPassMultiviewCreateInfo.subpassCount = renderPassCreateInfo.subpassCount;
+                       renderPassMultiviewCreateInfo.pViewMasks = &viewMask;
+                       renderPassMultiviewCreateInfo.correlationMaskCount = 1u;
+                       renderPassMultiviewCreateInfo.pCorrelationMasks = &correlationMask;
+                       renderPassMultiviewCreateInfo.pViewOffsets = DE_NULL;
+                       renderPassMultiviewCreateInfo.dependencyCount = 0u;
+
+                       renderPassCreateInfo.pNext = &renderPassMultiviewCreateInfo;
+               }
 
-               renderPassMultiviewCreateInfo.sType = vk::VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
-               renderPassMultiviewCreateInfo.pNext = DE_NULL;
-               renderPassMultiviewCreateInfo.subpassCount = renderPassCreateInfo.subpassCount;
-               renderPassMultiviewCreateInfo.pViewMasks = &viewMask;
-               renderPassMultiviewCreateInfo.correlationMaskCount = 1u;
-               renderPassMultiviewCreateInfo.pCorrelationMasks = &correlationMask;
-               renderPassMultiviewCreateInfo.pViewOffsets = DE_NULL;
-               renderPassMultiviewCreateInfo.dependencyCount = 0u;
+               m_renderPass = vk::createRenderPass(m_vk, device, &renderPassCreateInfo);
 
-               renderPassCreateInfo.pNext = &renderPassMultiviewCreateInfo;
+               // create framebuffer
+               std::vector<vk::VkImageView>    colorAttachments { *m_colorTargetView };
+               const FramebufferCreateInfo             framebufferCreateInfo(*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
+               m_framebuffer = vk::createFramebuffer(m_vk, device, &framebufferCreateInfo);
        }
 
-       m_renderPass            = vk::createRenderPass(m_vk, device, &renderPassCreateInfo);
-
-       std::vector<vk::VkImageView> colorAttachments(1);
-       colorAttachments[0] = *m_colorTargetView;
-
-       const FramebufferCreateInfo framebufferCreateInfo(*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
-
-       m_framebuffer           = vk::createFramebuffer(m_vk, device, &framebufferCreateInfo);
-
        const vk::VkVertexInputBindingDescription vertexInputBindingDescription[2] =
        {
                {
@@ -505,6 +508,24 @@ InstancedDrawInstance::InstancedDrawInstance(Context &context, TestParams params
        pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
        pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState());
 
+       vk::VkPipelineRenderingCreateInfoKHR renderingFormatCreateInfo
+       {
+               vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               1u,
+               &m_colorAttachmentFormat,
+               vk::VK_FORMAT_UNDEFINED
+       };
+
+       if (m_params.useDynamicRendering)
+       {
+               pipelineCreateInfo.pNext = &renderingFormatCreateInfo;
+
+               if (m_params.testMultiview)
+                       renderingFormatCreateInfo.viewMask = 3u;
+       }
+
        m_pipeline = vk::createGraphicsPipeline(m_vk, device, DE_NULL, &pipelineCreateInfo);
 }
 
@@ -518,7 +539,7 @@ tcu::TestStatus InstancedDrawInstance::iterate()
 
        qpTestResult                    res                                             = QP_TEST_RESULT_PASS;
 
-       const vk::VkClearColorValue clearColor = { { 0.0f, 0.0f, 0.0f, 1.0f } };
+       const vk::VkClearValue clearColor = { { { 0.0f, 0.0f, 0.0f, 1.0f } } };
        int firstInstanceIndicesCount = DE_LENGTH_OF_ARRAY(firstInstanceIndices);
 
        // Require 'drawIndirectFirstInstance' feature to run non-zero firstInstance indirect draw tests.
@@ -573,7 +594,7 @@ tcu::TestStatus InstancedDrawInstance::iterate()
 
                        const ImageSubresourceRange subresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, numLayers);
                        m_vk.cmdClearColorImage(*m_cmdBuffer, m_colorTargetImage->object(),
-                               vk::VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
+                               vk::VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &subresourceRange);
 
                        const vk::VkMemoryBarrier memBarrier =
                        {
@@ -588,7 +609,10 @@ tcu::TestStatus InstancedDrawInstance::iterate()
                                0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
 
                        const vk::VkRect2D renderArea = vk::makeRect2D(WIDTH, HEIGHT);
-                       beginRenderPass(m_vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, renderArea);
+                       if (m_params.useDynamicRendering)
+                               beginRendering(m_vk, *m_cmdBuffer, *m_colorTargetView, renderArea, clearColor, vk::VK_IMAGE_LAYOUT_GENERAL, vk::VK_ATTACHMENT_LOAD_OP_LOAD, 0, (m_params.testMultiview) ? 2u : 1u, (m_params.testMultiview) ? 3u : 0u);
+                       else
+                               beginRenderPass(m_vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, renderArea);
 
                        if (m_params.function == TestParams::FUNCTION_DRAW_INDEXED || m_params.function == TestParams::FUNCTION_DRAW_INDEXED_INDIRECT)
                        {
@@ -662,7 +686,11 @@ tcu::TestStatus InstancedDrawInstance::iterate()
                                        DE_ASSERT(false);
                        }
 
-                       endRenderPass(m_vk, *m_cmdBuffer);
+                       if (m_params.useDynamicRendering)
+                               endRendering(m_vk, *m_cmdBuffer);
+                       else
+                               endRenderPass(m_vk, *m_cmdBuffer);
+
                        endCommandBuffer(m_vk, *m_cmdBuffer);
 
                        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
@@ -822,8 +850,9 @@ void InstancedDrawInstance::prepareVertexData(int instanceCount, int firstInstan
 
 } // anonymus
 
-InstancedTests::InstancedTests(tcu::TestContext& testCtx)
-       : TestCaseGroup (testCtx, "instanced", "Instanced drawing tests")
+InstancedTests::InstancedTests(tcu::TestContext& testCtx, bool useDynamicRendering)
+       : TestCaseGroup                 (testCtx, "instanced", "Instanced drawing tests")
+       , m_useDynamicRendering (useDynamicRendering)
 {
        static const vk::VkPrimitiveTopology    topologies[]                    =
        {
@@ -863,6 +892,7 @@ InstancedTests::InstancedTests(tcu::TestContext& testCtx)
                                                TestParams param;
                                                param.function = functions[functionNdx];
                                                param.topology = topologies[topologyNdx];
+                                               param.useDynamicRendering = useDynamicRendering;
                                                param.testAttribDivisor = testAttribDivisor ? DE_TRUE : DE_FALSE;
                                                param.attribDivisor = divisors[divisorNdx];
                                                param.testMultiview = multiviews[multiviewNdx];
index bc3ae4e..d05bfc3 100644 (file)
@@ -34,12 +34,15 @@ namespace Draw
 class InstancedTests : public tcu::TestCaseGroup
 {
 public:
-                                       InstancedTests  (tcu::TestContext &testCtx);
+                                       InstancedTests  (tcu::TestContext &testCtx, bool useDynamicRendering);
                                        ~InstancedTests (void);
 
 private:
                                        InstancedTests  (const InstancedTests &other);
        InstancedTests& operator=               (const InstancedTests &other);
+
+private:
+       const bool m_useDynamicRendering;
 };
 
 } // Draw
index 6fad4f0..a67e3b5 100644 (file)
@@ -64,7 +64,7 @@ struct TestParams
        VkBool32        depthClampEnable;
        VkBool32        depthBiasEnable;
        float           depthBiasClamp;
-
+       VkBool32        useDynamicRendering;
 };
 
 constexpr deUint32                     kImageDim               = 256u;
@@ -142,35 +142,42 @@ InvertedDepthRangesTestInstance::InvertedDepthRangesTestInstance (Context& conte
                flushMappedMemoryRange(vk, device, m_vertexBuffer->getBoundMemory().getMemory(), m_vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
        }
 
-       // Render pass
+       const VkImageUsageFlags targetImageUsageFlags   = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+       const VkImageUsageFlags depthTargeUsageFlags    = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+
+       const ImageCreateInfo   targetImageCreateInfo(
+               VK_IMAGE_TYPE_2D,                                               // imageType,
+               m_colorAttachmentFormat,                                // format,
+               kImageExtent,                                                   // extent,
+               1u,                                                                             // mipLevels,
+               1u,                                                                             // arrayLayers,
+               VK_SAMPLE_COUNT_1_BIT,                                  // samples,
+               VK_IMAGE_TILING_OPTIMAL,                                // tiling,
+               targetImageUsageFlags);                                 // usage,
+
+       m_colorTargetImage = Image::createAndAlloc(vk, device, targetImageCreateInfo, alloc, qIndex);
+
+       const ImageCreateInfo   depthTargetImageCreateInfo(
+               VK_IMAGE_TYPE_2D,                                               // imageType,
+               m_depthAttachmentFormat,                                // format,
+               kImageExtent,                                                   // extent,
+               1u,                                                                             // mipLevels,
+               1u,                                                                             // arrayLayers,
+               VK_SAMPLE_COUNT_1_BIT,                                  // samples,
+               VK_IMAGE_TILING_OPTIMAL,                                // tiling,
+               depthTargeUsageFlags);                                  // usage,
+
+       m_depthTargetImage = Image::createAndAlloc(vk, device, depthTargetImageCreateInfo, alloc, qIndex);
+
+       const ImageViewCreateInfo colorTargetViewInfo(m_colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat);
+       m_colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
+
+       const ImageViewCreateInfo depthTargetViewInfo(m_depthTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_depthAttachmentFormat);
+       m_depthTargetView = createImageView(vk, device, &depthTargetViewInfo);
+
+       // Render pass and framebuffer
+       if (!m_params.useDynamicRendering)
        {
-               const VkImageUsageFlags targetImageUsageFlags   = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
-               const VkImageUsageFlags depthTargeUsageFlags    = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
-
-               const ImageCreateInfo   targetImageCreateInfo(
-                       VK_IMAGE_TYPE_2D,                                               // imageType,
-                       m_colorAttachmentFormat,                                // format,
-                       kImageExtent,                                                   // extent,
-                       1u,                                                                             // mipLevels,
-                       1u,                                                                             // arrayLayers,
-                       VK_SAMPLE_COUNT_1_BIT,                                  // samples,
-                       VK_IMAGE_TILING_OPTIMAL,                                // tiling,
-                       targetImageUsageFlags);                                 // usage,
-
-               m_colorTargetImage = Image::createAndAlloc(vk, device, targetImageCreateInfo, alloc, qIndex);
-
-               const ImageCreateInfo   depthTargetImageCreateInfo(
-                       VK_IMAGE_TYPE_2D,                                               // imageType,
-                       m_depthAttachmentFormat,                                // format,
-                       kImageExtent,                                                   // extent,
-                       1u,                                                                             // mipLevels,
-                       1u,                                                                             // arrayLayers,
-                       VK_SAMPLE_COUNT_1_BIT,                                  // samples,
-                       VK_IMAGE_TILING_OPTIMAL,                                // tiling,
-                       depthTargeUsageFlags);                                  // usage,
-
-               m_depthTargetImage = Image::createAndAlloc(vk, device, depthTargetImageCreateInfo, alloc, qIndex);
-
                RenderPassCreateInfo    renderPassCreateInfo;
                renderPassCreateInfo.addAttachment(AttachmentDescription(
                        m_colorAttachmentFormat,                                // format
@@ -217,19 +224,12 @@ InvertedDepthRangesTestInstance::InvertedDepthRangesTestInstance (Context& conte
                        DE_NULL));                                                              // preserveAttachments
 
                m_renderPass = createRenderPass(vk, device, &renderPassCreateInfo);
-       }
-
-       // Framebuffer
-       {
-               const ImageViewCreateInfo colorTargetViewInfo (m_colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat);
-               m_colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
 
-               const ImageViewCreateInfo depthTargetViewInfo (m_depthTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_depthAttachmentFormat);
-               m_depthTargetView = createImageView(vk, device, &depthTargetViewInfo);
-
-               std::vector<VkImageView> fbAttachments(2);
-               fbAttachments[0] = *m_colorTargetView;
-               fbAttachments[1] = *m_depthTargetView;
+               std::vector<VkImageView> fbAttachments
+               {
+                       *m_colorTargetView,
+                       *m_depthTargetView
+               };
 
                const FramebufferCreateInfo     framebufferCreateInfo(*m_renderPass, fbAttachments, kImageExtent.width, kImageExtent.height, 1u);
                m_framebuffer = createFramebuffer(vk, device, &framebufferCreateInfo);
@@ -292,16 +292,31 @@ InvertedDepthRangesTestInstance::InvertedDepthRangesTestInstance (Context& conte
        pipelineCreateInfo.addState (PipelineCreateInfo::MultiSampleState       ());
        pipelineCreateInfo.addState (PipelineCreateInfo::DynamicState           (dynamicStates));
 
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               1u,
+               &m_colorAttachmentFormat,
+               m_depthAttachmentFormat
+       };
+
+       if (m_params.useDynamicRendering)
+               pipelineCreateInfo.pNext = &renderingCreateInfo;
+
        m_pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
 }
 
 InvertedDepthRangesTestInstance::ColorAndDepth InvertedDepthRangesTestInstance::draw (const VkViewport viewport)
 {
-       const DeviceInterface&  vk                                      = m_context.getDeviceInterface();
-       const VkDevice                  device                          = m_context.getDevice();
-       const VkQueue                   queue                           = m_context.getUniversalQueue();
-       const deUint32                  queueFamilyIndex        = m_context.getUniversalQueueFamilyIndex();
-       auto&                                   alloc                           = m_context.getDefaultAllocator();
+       const DeviceInterface&          vk                                      = m_context.getDeviceInterface();
+       const VkDevice                          device                          = m_context.getDevice();
+       const VkQueue                           queue                           = m_context.getUniversalQueue();
+       const deUint32                          queueFamilyIndex        = m_context.getUniversalQueueFamilyIndex();
+       auto&                                           alloc                           = m_context.getDefaultAllocator();
+       const VkClearValue                      clearColor                      = makeClearValueColor(kClearColor);
+       const VkClearValue                      clearDepth                      = makeClearValueDepthStencil(kClearDepth, 0u);
 
        // Command buffer
 
@@ -316,16 +331,13 @@ InvertedDepthRangesTestInstance::ColorAndDepth InvertedDepthRangesTestInstance::
        vk.cmdSetViewport(*cmdBuffer, 0u, 1u, &viewport);
 
        {
-               const VkClearColorValue                 clearColor                              = makeClearValueColor(kClearColor).color;
                const ImageSubresourceRange             subresourceRange                (VK_IMAGE_ASPECT_COLOR_BIT);
-
-               const VkClearDepthStencilValue  clearDepth                              = makeClearValueDepthStencil(kClearDepth, 0u).depthStencil;
                const ImageSubresourceRange             depthSubresourceRange   (VK_IMAGE_ASPECT_DEPTH_BIT);
 
                initialTransitionColor2DImage(vk, *cmdBuffer, m_colorTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT);
                initialTransitionDepth2DImage(vk, *cmdBuffer, m_depthTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT);
-               vk.cmdClearColorImage(*cmdBuffer, m_colorTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
-               vk.cmdClearDepthStencilImage(*cmdBuffer, m_depthTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, &clearDepth, 1u, &depthSubresourceRange);
+               vk.cmdClearColorImage(*cmdBuffer, m_colorTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &subresourceRange);
+               vk.cmdClearDepthStencilImage(*cmdBuffer, m_depthTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, &clearDepth.depthStencil, 1u, &depthSubresourceRange);
        }
        {
                const VkMemoryBarrier memBarrier =
@@ -348,7 +360,10 @@ InvertedDepthRangesTestInstance::ColorAndDepth InvertedDepthRangesTestInstance::
                vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, (VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT), 0, 1, &depthBarrier, 0, DE_NULL, 0, DE_NULL);
        }
 
-       beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(kImageExtent));
+       if (m_params.useDynamicRendering)
+               beginRendering(vk, *cmdBuffer, *m_colorTargetView, *m_depthTargetView, makeRect2D(kImageExtent), clearColor, clearDepth);
+       else
+               beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(kImageExtent));
 
        {
                const VkDeviceSize      offset  = 0;
@@ -359,7 +374,12 @@ InvertedDepthRangesTestInstance::ColorAndDepth InvertedDepthRangesTestInstance::
 
        vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
        vk.cmdDraw(*cmdBuffer, 3, 1, 0, 0);
-       endRenderPass(vk, *cmdBuffer);
+
+       if (m_params.useDynamicRendering)
+               endRendering(vk, *cmdBuffer);
+       else
+               endRenderPass(vk, *cmdBuffer);
+
        endCommandBuffer(vk, *cmdBuffer);
 
        // Submit
@@ -600,6 +620,9 @@ public:
 
                if (m_params.minDepth > 1.0f || m_params.minDepth < 0.0f || m_params.maxDepth > 1.0f || m_params.maxDepth < 0.0f)
                        context.requireDeviceFunctionality("VK_EXT_depth_range_unrestricted");
+
+               if (m_params.useDynamicRendering)
+                       context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
        }
 
        virtual TestInstance* createInstance (Context& context) const
@@ -611,7 +634,7 @@ private:
        const TestParams        m_params;
 };
 
-void populateTestGroup (tcu::TestCaseGroup* testGroup)
+void populateTestGroup (tcu::TestCaseGroup* testGroup, bool useDynamicRendering)
 {
        const struct
        {
@@ -659,6 +682,7 @@ void populateTestGroup (tcu::TestCaseGroup* testGroup)
                        cDepthClamp.depthClamp,
                        cDepthParams.depthBiasEnable,
                        cDepthParams.depthBiasClamp,
+                       useDynamicRendering
                };
 
                std::string name = cDepthClamp.name + "_" + cDepthParams.name;
@@ -668,9 +692,9 @@ void populateTestGroup (tcu::TestCaseGroup* testGroup)
 
 }      // anonymous
 
-tcu::TestCaseGroup*    createInvertedDepthRangesTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup*    createInvertedDepthRangesTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "inverted_depth_ranges", "Inverted depth ranges", populateTestGroup);
+       return createTestGroup(testCtx, "inverted_depth_ranges", "Inverted depth ranges", populateTestGroup, useDynamicRendering);
 }
 
 }      // Draw
index 675d632..0e1c4bc 100644 (file)
@@ -32,7 +32,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*    createInvertedDepthRangesTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*    createInvertedDepthRangesTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 }      // Draw
 }      // vkt
index 7224b47..154a975 100644 (file)
@@ -92,6 +92,7 @@ struct TestParams
        bool                                                    useTessellation;
        bool                                                    useGeometry;
        bool                                                    multiview;
+       bool                                                    useDynamicRendering;
 
        deUint32 maxInstanceIndex () const
        {
@@ -375,6 +376,9 @@ void MultiDrawTest::checkSupport (Context& context) const
                if (m_params.useGeometry && !multiviewFeatures.multiviewGeometryShader)
                        TCU_THROW(NotSupportedError, "Multiview not supported with geometry shaders");
        }
+
+       if (m_params.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
 }
 
 void MultiDrawTest::initPrograms (vk::SourceCollections& programCollection) const
@@ -802,12 +806,16 @@ tcu::TestStatus MultiDrawInstance::iterate (void)
        const auto                                      descriptorSetLayout     = layoutBuilder.build(vkd, device);
        const auto                                      pipelineLayout          = makePipelineLayout(vkd, device, descriptorSetLayout.get());
 
-       // Render pass.
-       const auto renderPass = makeMultidrawRenderPass(vkd, device, colorFormat, dsFormat, imageLayers);
+       Move<VkRenderPass>                      renderPass;
+       Move<VkFramebuffer>                     framebuffer;
 
-       // Framebuffer (note layers is always 1 as required by the spec).
-       const std::vector<VkImageView> attachments { colorBufferView.get(), dsBufferView.get() };
-       const auto framebuffer = makeFramebuffer(vkd, device, renderPass.get(), static_cast<deUint32>(attachments.size()), de::dataOrNull(attachments), imageExtent.width, imageExtent.height, 1u);
+       // Render pass and Framebuffer (note layers is always 1 as required by the spec).
+       if (!m_params.useDynamicRendering)
+       {
+               renderPass = makeMultidrawRenderPass(vkd, device, colorFormat, dsFormat, imageLayers);
+               const std::vector<VkImageView> attachments { colorBufferView.get(), dsBufferView.get() };
+               framebuffer = makeFramebuffer(vkd, device, renderPass.get(), static_cast<deUint32>(attachments.size()), de::dataOrNull(attachments), imageExtent.width, imageExtent.height, 1u);
+       }
 
        // Viewports and scissors.
        const auto                                              viewport        = makeViewport(imageExtent);
@@ -856,6 +864,20 @@ tcu::TestStatus MultiDrawInstance::iterate (void)
                1.0f,                                                                                                                   //      float                                                                   maxDepthBounds;
        };
 
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               1u,
+               &colorFormat,
+               dsFormat
+       };
+
+       vk::VkPipelineRenderingCreateInfoKHR* nextPtr = nullptr;
+       if (m_params.useDynamicRendering)
+               nextPtr = &renderingCreateInfo;
+
        const auto primitiveTopology    = (m_params.useTessellation ? VK_PRIMITIVE_TOPOLOGY_PATCH_LIST : VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST);
        const auto patchControlPoints   = (m_params.useTessellation ? 3u : 0u);
 
@@ -867,7 +889,8 @@ tcu::TestStatus MultiDrawInstance::iterate (void)
                pipelines.emplace_back(makeGraphicsPipeline(vkd, device, pipelineLayout.get(),
                        vertModule.get(), tescModule.get(), teseModule.get(), geomModule.get(), fragModule.get(),
                        renderPass.get(), viewports, scissors, primitiveTopology, subpassIdx, patchControlPoints,
-                       nullptr/*vertexInputStateCreateInfo*/, &rasterizationInfo, nullptr/*multisampleStateCreateInfo*/, &depthStencilInfo));
+                       nullptr/*vertexInputStateCreateInfo*/, &rasterizationInfo, nullptr/*multisampleStateCreateInfo*/, &depthStencilInfo,
+                       nullptr/*colorBlendStateCreateInfo*/, nullptr/*dynamicStateCreateInfo*/, nextPtr));
        }
 
        // Command pool and buffer.
@@ -980,7 +1003,28 @@ tcu::TestStatus MultiDrawInstance::iterate (void)
        clearValues.push_back(makeClearValueColorU32(0u, 0u, 0u, 0u));
        clearValues.push_back(makeClearValueDepthStencil(((isMosaic || isIndexed) ? 0.0f : 1.0f), 0u));
 
-       beginRenderPass(vkd, cmdBuffer, renderPass.get(), framebuffer.get(), scissor, static_cast<deUint32>(clearValues.size()), de::dataOrNull(clearValues));
+       if (m_params.useDynamicRendering)
+       {
+               // Transition color attachment to the proper initial layout for dynamic rendering
+               const auto colorPreBarrier = makeImageMemoryBarrier(
+                       0u,
+                       VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                       VK_IMAGE_LAYOUT_UNDEFINED,
+                       VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                       colorBuffer.get(), colorSubresourceRange);
+
+               vkd.cmdPipelineBarrier(
+                       cmdBuffer,
+                       VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
+                       (VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT),
+                       0u, 0u, nullptr, 0u, nullptr, 1u, &colorPreBarrier);
+
+               beginRendering(vkd, cmdBuffer, *colorBufferView, *dsBufferView, scissor, clearValues[0], clearValues[1],
+                                          vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+                                          VK_ATTACHMENT_LOAD_OP_CLEAR);
+       }
+       else
+               beginRenderPass(vkd, cmdBuffer, renderPass.get(), framebuffer.get(), scissor, static_cast<deUint32>(clearValues.size()), de::dataOrNull(clearValues));
 
        for (deUint32 layerIdx = 0u; layerIdx < imageLayers; ++layerIdx)
        {
@@ -1005,7 +1049,10 @@ tcu::TestStatus MultiDrawInstance::iterate (void)
                }
        }
 
-       endRenderPass(vkd, cmdBuffer);
+       if (m_params.useDynamicRendering)
+               endRendering(vkd, cmdBuffer);
+       else
+               endRenderPass(vkd, cmdBuffer);
 
        // Prepare images for copying.
        const auto colorBufferBarrier = makeImageMemoryBarrier(
@@ -1136,7 +1183,7 @@ tcu::TestStatus MultiDrawInstance::iterate (void)
 
 } // anonymous
 
-tcu::TestCaseGroup*    createDrawMultiExtTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup*    createDrawMultiExtTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
        using GroupPtr = de::MovePtr<tcu::TestCaseGroup>;
 
@@ -1271,10 +1318,16 @@ tcu::TestCaseGroup*     createDrawMultiExtTests (tcu::TestContext& testCtx)
 
                                                        for (const auto& shaderCase : shaderCases)
                                                        {
+                                                               if (useDynamicRendering && (shaderCase.useTessellation || shaderCase.useGeometry))
+                                                                       continue;
+
                                                                GroupPtr shaderGroup(new tcu::TestCaseGroup(testCtx, shaderCase.name, ""));
 
                                                                for (const auto& multiviewCase : multiviewCases)
                                                                {
+                                                                       if (useDynamicRendering && multiviewCase.multiview)
+                                                                               continue;
+
                                                                        GroupPtr multiviewGroup(new tcu::TestCaseGroup(testCtx, multiviewCase.name, ""));
 
                                                                        const auto      isIndexed       = (drawTypeCase.drawType == DrawType::INDEXED);
@@ -1304,6 +1357,7 @@ tcu::TestCaseGroup*       createDrawMultiExtTests (tcu::TestContext& testCtx)
                                                                                shaderCase.useTessellation,             //      bool                                                    useTessellation;
                                                                                shaderCase.useGeometry,                 //      bool                                                    useGeometry;
                                                                                multiviewCase.multiview,                //      bool                                                    multiview;
+                                                                               useDynamicRendering,                    //      bool                                                    useDynamicRendering;
                                                                        };
 
                                                                        multiviewGroup->addChild(new MultiDrawTest(testCtx, "no_offset", "", params));
index 0e40879..70b5941 100644 (file)
@@ -31,7 +31,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*    createDrawMultiExtTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*    createDrawMultiExtTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index 8425e2d..d0ca1ce 100644 (file)
@@ -176,6 +176,7 @@ struct TestParams
        float                                   depthEpsilon;
        deUint32                                repeatCount;
        bool                                    enableBlend;
+       bool                                    useDynamicRendering;
        vector<ClearStep>               steps;
 };
 
@@ -233,16 +234,31 @@ MultipleClearsTest::MultipleClearsTest (Context &context, const TestParams& para
                deMemcpy(m_vertexBuffer->getBoundMemory().getHostPtr(), m_vertices, static_cast<std::size_t>(totalDataSize));
                flushMappedMemoryRange(vk, device, m_vertexBuffer->getBoundMemory().getMemory(), m_vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
        }
+
+       if (hasColor)
+       {
+               const VkImageUsageFlags         targetImageUsageFlags           = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+               const ImageCreateInfo           targetImageCreateInfo           (VK_IMAGE_TYPE_2D, m_params.colorFormat, { WIDTH, HEIGHT, 1u }, 1u,     1u,     VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_TILING_OPTIMAL, targetImageUsageFlags);
+               m_colorTargetImage                                                                              = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), queueFamilyIndex);
+               const ImageViewCreateInfo       colorTargetViewInfo                     (m_colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_params.colorFormat);
+               m_colorTargetView                                                                               = createImageView(vk, device, &colorTargetViewInfo);
+       }
+
+       if (hasDepth)
+       {
+               const VkImageUsageFlags         depthImageUsageFlags            = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+               const ImageCreateInfo           depthImageCreateInfo            (VK_IMAGE_TYPE_2D, m_params.depthFormat, { WIDTH, HEIGHT, 1u }, 1u,     1u,     VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_TILING_OPTIMAL, depthImageUsageFlags);
+               m_depthTargetImage                                                                              = Image::createAndAlloc(vk, device, depthImageCreateInfo, m_context.getDefaultAllocator(), queueFamilyIndex);
+               const ImageViewCreateInfo       depthTargetViewInfo                     (m_depthTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_params.depthFormat);
+               m_depthTargetView                                                                               = createImageView(vk, device, &depthTargetViewInfo);
+       }
+
        // Render pass
-       std::vector<VkImageView>                        attachments;
+       if (!m_params.useDynamicRendering)
        {
                RenderPassCreateInfo                    renderPassCreateInfo;
                if (hasColor)
                {
-                       const VkImageUsageFlags         targetImageUsageFlags           = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
-                       const ImageCreateInfo           targetImageCreateInfo           (VK_IMAGE_TYPE_2D, m_params.colorFormat, { WIDTH, HEIGHT, 1u }, 1u,     1u,     VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_TILING_OPTIMAL, targetImageUsageFlags);
-                       m_colorTargetImage                                                                              = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), queueFamilyIndex);
-
                        renderPassCreateInfo.addAttachment(AttachmentDescription(
                                 m_params.colorFormat,                                                          // format
                                 VK_SAMPLE_COUNT_1_BIT,                                                         // samples
@@ -252,17 +268,9 @@ MultipleClearsTest::MultipleClearsTest (Context &context, const TestParams& para
                                 VK_ATTACHMENT_STORE_OP_DONT_CARE,                                      // stencilStoreOp
                                 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,                      // initialLayout
                                 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL));            // finalLayout
-
-                       const ImageViewCreateInfo       colorTargetViewInfo                     (m_colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_params.colorFormat);
-                       m_colorTargetView                                                                               = createImageView(vk, device, &colorTargetViewInfo);
-                       attachments.push_back(*m_colorTargetView);
                }
                if (hasDepth)
                {
-                       const VkImageUsageFlags         depthImageUsageFlags            = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
-                       const ImageCreateInfo           depthImageCreateInfo            (VK_IMAGE_TYPE_2D, m_params.depthFormat, { WIDTH, HEIGHT, 1u }, 1u,     1u,     VK_SAMPLE_COUNT_1_BIT, VK_IMAGE_TILING_OPTIMAL, depthImageUsageFlags);
-                       m_depthTargetImage                                                                              = Image::createAndAlloc(vk, device, depthImageCreateInfo, m_context.getDefaultAllocator(), queueFamilyIndex);
-
                        renderPassCreateInfo.addAttachment(AttachmentDescription(
                                m_params.depthFormat,                                                           // format
                                VK_SAMPLE_COUNT_1_BIT,                                                          // samples
@@ -272,10 +280,6 @@ MultipleClearsTest::MultipleClearsTest (Context &context, const TestParams& para
                                VK_ATTACHMENT_STORE_OP_DONT_CARE,                                       // stencilStoreOp
                                VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,       // initialLayout
                                VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL));     // finalLayout
-
-                       const ImageViewCreateInfo       depthTargetViewInfo                     (m_depthTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_params.depthFormat);
-                       m_depthTargetView                                                                               = createImageView(vk, device, &depthTargetViewInfo);
-                       attachments.push_back(*m_depthTargetView);
                }
                const VkAttachmentReference colorAttachmentReference            = hasColor ? makeAttachmentReference(0u, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) : AttachmentReference();
                const VkAttachmentReference depthAttachmentReference            = hasDepth ? makeAttachmentReference(hasColor ? 1u : 0u, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL) : AttachmentReference();
@@ -291,9 +295,15 @@ MultipleClearsTest::MultipleClearsTest (Context &context, const TestParams& para
                        0u,                                                                                                             // preserveAttachmentCount
                        DE_NULL));                                                                                              // preserveAttachments
                m_renderPass                                                                                            = createRenderPass(vk, device, &renderPassCreateInfo);
+
+               std::vector<VkImageView> attachments;
+               if (hasColor)
+                       attachments.push_back(*m_colorTargetView);
+               if (hasDepth)
+                       attachments.push_back(*m_depthTargetView);
+               const FramebufferCreateInfo framebufferCreateInfo(*m_renderPass, attachments, WIDTH, HEIGHT, 1);
+               m_framebuffer = createFramebuffer(vk, device, &framebufferCreateInfo);
        }
-       const FramebufferCreateInfo                                     framebufferCreateInfo                   (*m_renderPass, attachments, WIDTH, HEIGHT, 1);
-       m_framebuffer                                                                                                                           = createFramebuffer(vk, device, &framebufferCreateInfo);
 
        // Vertex input
        const VkVertexInputBindingDescription           vertexInputBindingDescription   =
@@ -347,7 +357,21 @@ MultipleClearsTest::MultipleClearsTest (Context &context, const TestParams& para
        pipelineCreateInfo.addState (PipelineCreateInfo::DepthStencilState      (hasDepth, hasDepth, VK_COMPARE_OP_ALWAYS, VK_FALSE, VK_FALSE));
        pipelineCreateInfo.addState (PipelineCreateInfo::RasterizerState        ());
        pipelineCreateInfo.addState (PipelineCreateInfo::MultiSampleState       ());
-       m_pipeline                                                                                                                                      = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
+
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               hasColor,
+               (hasColor ? &m_params.colorFormat : DE_NULL),
+               (hasDepth ? m_params.depthFormat : VK_FORMAT_UNDEFINED)
+       };
+
+       if (m_params.useDynamicRendering)
+               pipelineCreateInfo.pNext = &renderingCreateInfo;
+
+       m_pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
 }
 
 void MultipleClearsTest::clearAttachments (const DeviceInterface& vk, vk::VkCommandBuffer cmdBuffer, const ClearOp clearOp, const size_t stepIndex)
@@ -422,10 +446,69 @@ tcu::TestStatus MultipleClearsTest::iterate (void)
        if (hasDepth)
                initialTransitionDepth2DImage(vk, *cmdBuffer, m_depthTargetImage->object(), VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT);
 
-       if (!m_params.steps.empty() && m_params.steps[0].clearOp == ClearOp::LOAD)
-               beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, WIDTH, HEIGHT), m_params.steps[0].color, m_params.steps[0].depth, 0);
+       const VkRect2D renderArea = makeRect2D(0, 0, WIDTH, HEIGHT);
+       if (m_params.useDynamicRendering)
+       {
+               VkClearValue clearColorValue = makeClearValueColor(tcu::Vec4(0.0f));
+               VkClearValue clearDepthValue = makeClearValueDepthStencil(0.0f, 0u);
+               if (!m_params.steps.empty() && m_params.steps[0].clearOp == ClearOp::LOAD)
+               {
+                       clearColorValue = makeClearValueColor(m_params.steps[0].color);
+                       clearDepthValue = makeClearValueDepthStencil(m_params.steps[0].depth, 0u);
+               }
+
+               vk::VkRenderingAttachmentInfoKHR colorAttachment
+               {
+                       vk::VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,    // VkStructureType                                              sType;
+                       DE_NULL,                                                                                                // const void*                                                  pNext;
+                       *m_colorTargetView,                                                                             // VkImageView                                                  imageView;
+                       vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,                   // VkImageLayout                                                imageLayout;
+                       vk::VK_RESOLVE_MODE_NONE,                                                               // VkResolveModeFlagBits                                resolveMode;
+                       DE_NULL,                                                                                                // VkImageView                                                  resolveImageView;
+                       vk::VK_IMAGE_LAYOUT_UNDEFINED,                                                  // VkImageLayout                                                resolveImageLayout;
+                       vk::VK_ATTACHMENT_LOAD_OP_LOAD,                                                 // VkAttachmentLoadOp                                   loadOp;
+                       vk::VK_ATTACHMENT_STORE_OP_STORE,                                               // VkAttachmentStoreOp                                  storeOp;
+                       clearColorValue                                                                                 // VkClearValue                                                 clearValue;
+               };
+
+               vk::VkRenderingAttachmentInfoKHR depthAttachment
+               {
+                       vk::VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,    // VkStructureType                                              sType;
+                       DE_NULL,                                                                                                // const void*                                                  pNext;
+                       *m_depthTargetView,                                                                             // VkImageView                                                  imageView;
+                       vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,   // VkImageLayout                                                imageLayout;
+                       vk::VK_RESOLVE_MODE_NONE,                                                               // VkResolveModeFlagBits                                resolveMode;
+                       DE_NULL,                                                                                                // VkImageView                                                  resolveImageView;
+                       vk::VK_IMAGE_LAYOUT_UNDEFINED,                                                  // VkImageLayout                                                resolveImageLayout;
+                       vk::VK_ATTACHMENT_LOAD_OP_LOAD,                                                 // VkAttachmentLoadOp                                   loadOp;
+                       vk::VK_ATTACHMENT_STORE_OP_STORE,                                               // VkAttachmentStoreOp                                  storeOp;
+                       clearDepthValue                                                                                 // VkClearValue                                                 clearValue;
+               };
+
+               vk::VkRenderingInfoKHR renderingInfo
+               {
+                       vk::VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
+                       DE_NULL,
+                       0u,                                                                                                             // VkRenderingFlagsKHR                                  flags;
+                       renderArea,                                                                                             // VkRect2D                                                             renderArea;
+                       1u,                                                                                                             // deUint32                                                             layerCount;
+                       0u,                                                                                                             // deUint32                                                             viewMask;
+                       hasColor,                                                                                               // deUint32                                                             colorAttachmentCount;
+                       (hasColor ? &colorAttachment : DE_NULL),                                // const VkRenderingAttachmentInfoKHR*  pColorAttachments;
+                       (hasDepth ? &depthAttachment : DE_NULL),                                // const VkRenderingAttachmentInfoKHR*  pDepthAttachment;
+                       DE_NULL,                                                                                                // const VkRenderingAttachmentInfoKHR*  pStencilAttachment;
+               };
+
+               vk.cmdBeginRenderingKHR(*cmdBuffer, &renderingInfo);
+       }
        else
-               beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, WIDTH, HEIGHT));
+       {
+               if (!m_params.steps.empty() && m_params.steps[0].clearOp == ClearOp::LOAD)
+                       beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, renderArea, m_params.steps[0].color, m_params.steps[0].depth, 0);
+               else
+                       beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, renderArea);
+       }
+
        vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
        {
                const VkDeviceSize      offset  = 0;
@@ -441,7 +524,10 @@ tcu::TestStatus MultipleClearsTest::iterate (void)
                        clearAttachments(vk, *cmdBuffer, step.clearOp, j);
                }
 
-       endRenderPass(vk, *cmdBuffer);
+       if (m_params.useDynamicRendering)
+               endRendering(vk, *cmdBuffer);
+       else
+               endRenderPass(vk, *cmdBuffer);
 
        if (hasDepth)
        {
@@ -578,6 +664,9 @@ public:
                        if (vki.getPhysicalDeviceImageFormatProperties(vkd, m_params.depthFormat, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_OPTIMAL, depthUsage, 0u, &imageFormatProperties) != VK_SUCCESS)
                                TCU_THROW(NotSupportedError, "Depth format not supported");
                }
+
+               if (m_params.useDynamicRendering)
+                       context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
        }
 
        virtual TestInstance* createInstance (Context& context) const
@@ -591,8 +680,9 @@ private:
 
 }      // anonymous
 
-MultipleClearsWithinRenderPassTests::MultipleClearsWithinRenderPassTests (tcu::TestContext &testCtx)
+MultipleClearsWithinRenderPassTests::MultipleClearsWithinRenderPassTests (tcu::TestContext &testCtx, bool useDynamicRendering)
        : TestCaseGroup (testCtx, "multiple_clears_within_render_pass", "Tests for multiple clears within render pass")
+       , m_useDynamicRendering(useDynamicRendering)
 {
 }
 
@@ -624,6 +714,7 @@ void MultipleClearsWithinRenderPassTests::init ()
                                        0.01f,                                                  // float                                depthEpsilon;
                                        1u,                                                             // deUint32                             repeatCount;
                                        true,                                                   // bool                                 enableBlend;
+                                       m_useDynamicRendering,                  // bool                                 useDynamicRendering;
                                        {                                                               // vector<ClearStep>    steps;
                                                { ClearOp::LOAD         , Vec4(1.0f, 0.0f, 0.0f, 1.0f)  , 0.7f },
                                                { ClearOp::CLEAR        , Vec4(0.0f, 1.0f, 0.0f, 1.0f)  , 0.3f },
@@ -644,6 +735,7 @@ void MultipleClearsWithinRenderPassTests::init ()
                                        0.01f,                                                  // float                                depthEpsilon;
                                        1u,                                                             // deUint32                             repeatCount;
                                        true,                                                   // bool                                 enableBlend;
+                                       m_useDynamicRendering,                  // bool                                 useDynamicRendering;
                                        {                                                               // vector<ClearStep>    steps;
                                                { ClearOp::DRAW         , Vec4(1.0f, 0.0f, 0.0f, 1.0f)  , 0.7f },
                                                { ClearOp::CLEAR        , Vec4(0.0f, 1.0f, 0.0f, 1.0f)  , 0.3f },
@@ -664,6 +756,7 @@ void MultipleClearsWithinRenderPassTests::init ()
                                        0.01f,                                                  // float                                depthEpsilon;
                                        1u,                                                             // deUint32                             repeatCount;
                                        true,                                                   // bool                                 enableBlend;
+                                       m_useDynamicRendering,                  // bool                                 useDynamicRendering;
                                        {                                                               // vector<ClearStep>    steps;
                                                { ClearOp::CLEAR        , Vec4(1.0f, 0.0f, 0.0f, 1.0f)  , 0.7f },
                                                { ClearOp::CLEAR        , Vec4(0.0f, 1.0f, 0.0f, 1.0f)  , 0.3f },
@@ -684,6 +777,7 @@ void MultipleClearsWithinRenderPassTests::init ()
                                        0.01f,                                                  // float                                depthEpsilon;
                                        1u,                                                             // deUint32                             repeatCount;
                                        false,                                                  // bool                                 enableBlend;
+                                       m_useDynamicRendering,                  // bool                                 useDynamicRendering;
                                        {                                                               // vector<ClearStep>    steps;
                                                { ClearOp::LOAD         , Vec4(1.0f, 0.0f, 0.0f, 1.0f)  , 0.3f },
                                                { ClearOp::CLEAR        , Vec4(0.0f, 1.0f, 0.0f, 1.0f)  , 0.9f }
@@ -703,6 +797,7 @@ void MultipleClearsWithinRenderPassTests::init ()
                                        0.01f,                                                  // float                                depthEpsilon;
                                        1u,                                                             // deUint32                             repeatCount;
                                        false,                                                  // bool                                 enableBlend;
+                                       m_useDynamicRendering,                  // bool                                 useDynamicRendering;
                                        {                                                               // vector<ClearStep>    steps;
                                                { ClearOp::DRAW         , Vec4(1.0f, 0.0f, 0.0f, 1.0f)  , 0.3f },
                                                { ClearOp::CLEAR        , Vec4(0.0f, 1.0f, 0.0f, 1.0f)  , 0.9f }
@@ -722,6 +817,7 @@ void MultipleClearsWithinRenderPassTests::init ()
                                        0.01f,                                                  // float                                depthEpsilon;
                                        1u,                                                             // deUint32                             repeatCount;
                                        false,                                                  // bool                                 enableBlend;
+                                       m_useDynamicRendering,                  // bool                                 useDynamicRendering;
                                        {                                                               // vector<ClearStep>    steps;
                                                { ClearOp::CLEAR        , Vec4(1.0f, 0.0f, 0.0f, 1.0f)  , 0.3f },
                                                { ClearOp::CLEAR        , Vec4(0.0f, 1.0f, 0.0f, 1.0f)  , 0.9f }
index d361408..eb4a1a0 100644 (file)
@@ -33,13 +33,16 @@ namespace Draw
 class MultipleClearsWithinRenderPassTests : public tcu::TestCaseGroup
 {
 public:
-                                               MultipleClearsWithinRenderPassTests             (tcu::TestContext &testCtx);
+                                               MultipleClearsWithinRenderPassTests             (tcu::TestContext &testCtx, bool useDynamicRendering);
                                                ~MultipleClearsWithinRenderPassTests    ();
        void                            init                                                                    ();
 
 private:
        MultipleClearsWithinRenderPassTests                                                     (const MultipleClearsWithinRenderPassTests &other);
        MultipleClearsWithinRenderPassTests&    operator=                       (const MultipleClearsWithinRenderPassTests &other);
+
+private:
+       const bool m_useDynamicRendering;
 };
 }
 }
index c9125c1..9ebbca5 100644 (file)
@@ -56,6 +56,7 @@ struct DrawParams
        // From the SPIR-V point of view, structured test variants will allow us to test interpolation decorations on struct members
        // instead of plain ids.
        bool                                            useStructure;
+       bool                                            useDynamicRendering;
 };
 
 template<typename T>
@@ -275,6 +276,9 @@ void DrawTestCase::checkSupport (Context& context) const
 {
        if (!(m_params.samples & context.getDeviceProperties().limits.framebufferColorSampleCounts))
                throw tcu::NotSupportedError("Multisampling with " + de::toString(m_params.samples) + " samples not supported");
+
+       if (m_params.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
 }
 
 TestInstance* DrawTestCase::createInstance (Context& context) const
@@ -343,7 +347,25 @@ void DrawTestInstance::render (de::SharedPtr<Image>& colorTargetImage,
                }
        }
 
+       {
+               const ImageViewCreateInfo colorTargetViewInfo(colorTargetImage->object(),
+                                                                                                         vk::VK_IMAGE_VIEW_TYPE_2D,
+                                                                                                         m_params.format);
+
+               colorTargetViews.push_back(makeSharedPtr(createImageView(vk, device, &colorTargetViewInfo)));
+
+               if (useMultisampling)
+               {
+                       const ImageViewCreateInfo multisamplingTargetViewInfo(multisampleImage->object(),
+                                                                                                                                 vk::VK_IMAGE_VIEW_TYPE_2D,
+                                                                                                                                 m_params.format);
+
+                       multisampleViews.push_back(makeSharedPtr(createImageView(vk, device, &multisamplingTargetViewInfo)));
+               }
+       }
+
        // Create render pass and framebuffer
+       if (!m_params.useDynamicRendering)
        {
                RenderPassCreateInfo                                    renderPassCreateInfo;
                std::vector<vk::VkImageView>                    attachments;
@@ -352,17 +374,12 @@ void DrawTestInstance::render (de::SharedPtr<Image>& colorTargetImage,
                deUint32                                                                attachmentNdx                           = 0;
 
                {
-                       const ImageViewCreateInfo               colorTargetViewInfo                     (colorTargetImage->object(),
-                                                                                                                                                vk::VK_IMAGE_VIEW_TYPE_2D,
-                                                                                                                                                m_params.format);
-
                        const vk::VkAttachmentReference colorAttachmentReference        =
                        {
                                attachmentNdx++,
                                vk::VK_IMAGE_LAYOUT_GENERAL
                        };
 
-                       colorTargetViews.push_back(makeSharedPtr(createImageView(vk, device, &colorTargetViewInfo)));
                        colorAttachmentRefs.push_back(colorAttachmentReference);
 
                        renderPassCreateInfo.addAttachment(AttachmentDescription(m_params.format,
@@ -376,17 +393,12 @@ void DrawTestInstance::render (de::SharedPtr<Image>& colorTargetImage,
 
                        if (useMultisampling)
                        {
-                               const ImageViewCreateInfo               multisamplingTargetViewInfo             (multisampleImage->object(),
-                                                                                                                                                                vk::VK_IMAGE_VIEW_TYPE_2D,
-                                                                                                                                                                m_params.format);
-
                                const vk::VkAttachmentReference multiSampleAttachmentReference  =
                                {
                                        attachmentNdx++,
                                        vk::VK_IMAGE_LAYOUT_GENERAL
                                };
 
-                               multisampleViews.push_back(makeSharedPtr(createImageView(vk, device, &multisamplingTargetViewInfo)));
                                multisampleAttachmentRefs.push_back(multiSampleAttachmentReference);
 
                                renderPassCreateInfo.addAttachment(AttachmentDescription(m_params.format,
@@ -511,6 +523,20 @@ void DrawTestInstance::render (de::SharedPtr<Image>& colorTargetImage,
                pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
                pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState(m_params.samples, sampleShadingEnable, 1.0f));
 
+               std::vector<vk::VkFormat> colorAttachmentFormats(colorTargetViews.size(), m_params.format);
+               vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+               {
+                       vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+                       DE_NULL,
+                       0u,
+                       static_cast<deUint32>(colorAttachmentFormats.size()),
+                       colorAttachmentFormats.data(),
+                       vk::VK_FORMAT_UNDEFINED
+               };
+
+               if (m_params.useDynamicRendering)
+                       pipelineCreateInfo.pNext = &renderingCreateInfo;
+
                pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
        }
 
@@ -522,19 +548,70 @@ void DrawTestInstance::render (de::SharedPtr<Image>& colorTargetImage,
                const vk::VkBuffer                              buffer                          = vertexBuffer->object();
                const vk::VkOffset3D                    zeroOffset                      = { 0, 0, 0 };
                const auto                                              clearValueColor         = vk::makeClearValueColor(tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f));
-               std::vector<vk::VkClearValue>   clearValues;
-
-               clearValues.push_back(clearValueColor);
-               if (useMultisampling)
-                       clearValues.push_back(clearValueColor);
+               std::vector<vk::VkClearValue>   clearValues                     (2, clearValueColor);
 
                beginCommandBuffer(vk, *cmdBuffer, 0u);
-               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, renderArea, (deUint32)clearValues.size(), &clearValues[0]);
+
+               if (m_params.useDynamicRendering)
+               {
+                       const deUint32 imagesCount = static_cast<deUint32>(colorTargetViews.size());
+                       std::vector<vk::VkRenderingAttachmentInfoKHR> colorAttachments(imagesCount,
+                       {
+                               vk::VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,    // VkStructureType                                              sType;
+                               DE_NULL,                                                                                                // const void*                                                  pNext;
+                               DE_NULL,                                                                                                // VkImageView                                                  imageView;
+                               vk::VK_IMAGE_LAYOUT_GENERAL,                                                    // VkImageLayout                                                imageLayout;
+                               vk::VK_RESOLVE_MODE_NONE,                                                               // VkResolveModeFlagBits                                resolveMode;
+                               DE_NULL,                                                                                                // VkImageView                                                  resolveImageView;
+                               vk::VK_IMAGE_LAYOUT_GENERAL,                                                    // VkImageLayout                                                resolveImageLayout;
+                               vk::VK_ATTACHMENT_LOAD_OP_CLEAR,                                                // VkAttachmentLoadOp                                   loadOp;
+                               vk::VK_ATTACHMENT_STORE_OP_STORE,                                               // VkAttachmentStoreOp                                  storeOp;
+                               clearValueColor                                                                                 // VkClearValue                                                 clearValue;
+                       });
+
+                       for (deUint32 i = 0; i < imagesCount; ++i)
+                       {
+                               if (useMultisampling)
+                               {
+                                       colorAttachments[i].imageView                   = **multisampleViews[i];
+                                       colorAttachments[i].resolveMode                 = vk::VK_RESOLVE_MODE_AVERAGE_BIT;
+                                       colorAttachments[i].resolveImageView    = **colorTargetViews[i];
+                               }
+                               else
+                                       colorAttachments[i].imageView = **colorTargetViews[i];
+                       }
+
+                       vk::VkRenderingInfoKHR renderingInfo
+                       {
+                               vk::VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
+                               DE_NULL,
+                               0,                                                                                                              // VkRenderingFlagsKHR                                  flags;
+                               renderArea,                                                                                             // VkRect2D                                                             renderArea;
+                               1u,                                                                                                             // deUint32                                                             layerCount;
+                               0u,                                                                                                             // deUint32                                                             viewMask;
+                               imagesCount,                                                                                    // deUint32                                                             colorAttachmentCount;
+                               colorAttachments.data(),                                                                // const VkRenderingAttachmentInfoKHR*  pColorAttachments;
+                               DE_NULL,                                                                                                // const VkRenderingAttachmentInfoKHR*  pDepthAttachment;
+                               DE_NULL,                                                                                                // const VkRenderingAttachmentInfoKHR*  pStencilAttachment;
+                       };
+
+                       vk.cmdBeginRenderingKHR(*cmdBuffer, &renderingInfo);
+               }
+               else
+               {
+                       const deUint32 imagesCount = static_cast<deUint32>(colorTargetViews.size() + multisampleViews.size());
+                       beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, renderArea, imagesCount, &clearValues[0]);
+               }
+
                vk.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &buffer, &vertexBufferOffset);
                vk.cmdBindPipeline(*cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
                vk.cmdPushConstants(*cmdBuffer, *pipelineLayout, vk::VK_SHADER_STAGE_FRAGMENT_BIT, 0u, pcDataSize, &pcData);
                vk.cmdDraw(*cmdBuffer, 3u, 1u, 0u, 0u);
-               endRenderPass(vk, *cmdBuffer);
+
+               if (m_params.useDynamicRendering)
+                       endRendering(vk, *cmdBuffer);
+               else
+                       endRenderPass(vk, *cmdBuffer);
 
                endCommandBuffer(vk, *cmdBuffer);
                submitCommandsAndWait(vk, device, queue, cmdBuffer.get());
@@ -648,7 +725,7 @@ tcu::TestStatus DrawTestInstance::iterate (void)
        return tcu::TestStatus::pass("Results differ and references match");
 }
 
-void createTests (tcu::TestCaseGroup* testGroup)
+void createTests (tcu::TestCaseGroup* testGroup, bool useDynamicRendering)
 {
        tcu::TestContext&       testCtx = testGroup->getTestContext();
        const vk::VkFormat      format  = vk::VK_FORMAT_R8G8B8A8_UNORM;
@@ -690,7 +767,7 @@ void createTests (tcu::TestCaseGroup* testGroup)
 
                for (const auto& testVariant : testVariants)
                {
-                       const DrawParams params {format, size, testVariant.samples, grpVariant.useStructure};
+                       const DrawParams params {format, size, testVariant.samples, grpVariant.useStructure, useDynamicRendering};
                        group->addChild(new DrawTestCase(testCtx, testVariant.name, testVariant.desc, params));
                }
 
@@ -700,12 +777,13 @@ void createTests (tcu::TestCaseGroup* testGroup)
 
 }      // anonymous
 
-tcu::TestCaseGroup* createMultipleInterpolationTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup* createMultipleInterpolationTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
        return createTestGroup(testCtx,
                                                   "multiple_interpolation",
                                                   "Tests for multiple interpolation decorations in a shader stage.",
-                                                  createTests);
+                                                  createTests,
+                                                  useDynamicRendering);
 }
 
 }      // Draw
index 01dff65..764a877 100644 (file)
@@ -31,7 +31,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*    createMultipleInterpolationTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*    createMultipleInterpolationTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index d7d25fa..720dfb9 100644 (file)
@@ -63,6 +63,7 @@ struct TestParams
        VkFrontFace                     frontFace;
        VkCullModeFlagBits      cullMode;
        bool                            zeroViewportHeight;
+       bool                            useDynamicRendering;
 };
 
 class NegativeViewportHeightTestInstance : public TestInstance
@@ -116,23 +117,27 @@ NegativeViewportHeightTestInstance::NegativeViewportHeightTestInstance (Context&
                flushMappedMemoryRange(vk, device, m_vertexBuffer->getBoundMemory().getMemory(), m_vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
        }
 
-       // Render pass
-       {
-               const VkExtent3D                targetImageExtent               = { WIDTH, HEIGHT, 1 };
-               const VkImageUsageFlags targetImageUsageFlags   = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+       const VkExtent3D                targetImageExtent               = { WIDTH, HEIGHT, 1 };
+       const VkImageUsageFlags targetImageUsageFlags   = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+
+       const ImageCreateInfo   targetImageCreateInfo(
+               VK_IMAGE_TYPE_2D,                                               // imageType,
+               m_colorAttachmentFormat,                                // format,
+               targetImageExtent,                                              // extent,
+               1u,                                                                             // mipLevels,
+               1u,                                                                             // arrayLayers,
+               VK_SAMPLE_COUNT_1_BIT,                                  // samples,
+               VK_IMAGE_TILING_OPTIMAL,                                // tiling,
+               targetImageUsageFlags);                                 // usage,
 
-               const ImageCreateInfo   targetImageCreateInfo(
-                       VK_IMAGE_TYPE_2D,                                               // imageType,
-                       m_colorAttachmentFormat,                                // format,
-                       targetImageExtent,                                              // extent,
-                       1u,                                                                             // mipLevels,
-                       1u,                                                                             // arrayLayers,
-                       VK_SAMPLE_COUNT_1_BIT,                                  // samples,
-                       VK_IMAGE_TILING_OPTIMAL,                                // tiling,
-                       targetImageUsageFlags);                                 // usage,
+       m_colorTargetImage = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
 
-               m_colorTargetImage = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
+       const ImageViewCreateInfo colorTargetViewInfo(m_colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat);
+       m_colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
 
+       // Render pass and framebuffer
+       if (!m_params.useDynamicRendering)
+       {
                RenderPassCreateInfo    renderPassCreateInfo;
                renderPassCreateInfo.addAttachment(AttachmentDescription(
                        m_colorAttachmentFormat,                                // format
@@ -163,17 +168,9 @@ NegativeViewportHeightTestInstance::NegativeViewportHeightTestInstance (Context&
                        DE_NULL));                                                              // preserveAttachments
 
                m_renderPass = createRenderPass(vk, device, &renderPassCreateInfo);
-       }
-
-       // Framebuffer
-       {
-               const ImageViewCreateInfo colorTargetViewInfo (m_colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat);
-               m_colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
-
-               std::vector<VkImageView> colorAttachments(1);
-               colorAttachments[0] = *m_colorTargetView;
 
-               const FramebufferCreateInfo     framebufferCreateInfo(*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
+               std::vector<VkImageView>                colorAttachments                { *m_colorTargetView };
+               const FramebufferCreateInfo             framebufferCreateInfo   (*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
                m_framebuffer = createFramebuffer(vk, device, &framebufferCreateInfo);
        }
 
@@ -234,6 +231,19 @@ NegativeViewportHeightTestInstance::NegativeViewportHeightTestInstance (Context&
        pipelineCreateInfo.addState (PipelineCreateInfo::MultiSampleState       ());
        pipelineCreateInfo.addState (PipelineCreateInfo::DynamicState           (dynamicStates));
 
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               1u,
+               &m_colorAttachmentFormat,
+               vk::VK_FORMAT_UNDEFINED
+       };
+
+       if (m_params.useDynamicRendering)
+               pipelineCreateInfo.pNext = &renderingCreateInfo;
+
        m_pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
 }
 
@@ -243,6 +253,7 @@ tcu::ConstPixelBufferAccess NegativeViewportHeightTestInstance::draw (const VkVi
        const VkDevice                  device                          = m_context.getDevice();
        const VkQueue                   queue                           = m_context.getUniversalQueue();
        const deUint32                  queueFamilyIndex        = m_context.getUniversalQueueFamilyIndex();
+       const VkClearValue              clearColor                      = makeClearValueColorF32(0.125f, 0.25f, 0.5f, 1.0f);
 
        // Command buffer
 
@@ -257,12 +268,11 @@ tcu::ConstPixelBufferAccess NegativeViewportHeightTestInstance::draw (const VkVi
        vk.cmdSetViewport(*cmdBuffer, 0u, 1u, &viewport);
 
        {
-               const VkClearColorValue         clearColor                      = makeClearValueColorF32(0.125f, 0.25f, 0.5f, 1.0f).color;
                const ImageSubresourceRange subresourceRange    (VK_IMAGE_ASPECT_COLOR_BIT);
 
                initialTransitionColor2DImage(vk, *cmdBuffer, m_colorTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL,
                                                                          VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT);
-               vk.cmdClearColorImage(*cmdBuffer, m_colorTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
+               vk.cmdClearColorImage(*cmdBuffer, m_colorTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, &clearColor.color, 1, &subresourceRange);
        }
 
        if (m_params.zeroViewportHeight)
@@ -293,7 +303,11 @@ tcu::ConstPixelBufferAccess NegativeViewportHeightTestInstance::draw (const VkVi
                vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, 0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
        }
 
-       beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, WIDTH, HEIGHT));
+       VkRect2D rect = makeRect2D(0, 0, WIDTH, HEIGHT);
+       if (m_params.useDynamicRendering)
+               beginRendering(vk, *cmdBuffer, *m_colorTargetView, rect, clearColor);
+       else
+               beginRenderPass(vk, *cmdBuffer, *m_renderPass, *m_framebuffer, rect);
 
        {
                const VkDeviceSize      offset  = 0;
@@ -304,7 +318,12 @@ tcu::ConstPixelBufferAccess NegativeViewportHeightTestInstance::draw (const VkVi
 
        vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
        vk.cmdDraw(*cmdBuffer, 6, 1, 0, 0);
-       endRenderPass(vk, *cmdBuffer);
+
+       if (m_params.useDynamicRendering)
+               endRendering(vk, *cmdBuffer);
+       else
+               endRenderPass(vk, *cmdBuffer);
+
        endCommandBuffer(vk, *cmdBuffer);
 
        // Submit
@@ -500,6 +519,9 @@ public:
 
        virtual void checkSupport (Context& context) const
        {
+               if (m_params.useDynamicRendering)
+                       context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+
                context.requireDeviceFunctionality("VK_KHR_maintenance1");
        }
 
@@ -512,7 +534,13 @@ private:
        const TestParams        m_params;
 };
 
-void populateTestGroup (tcu::TestCaseGroup* testGroup, bool zeroViewportHeight)
+struct GroupParams
+{
+       bool zeroViewportHeight;
+       bool useDynamicRendering;
+};
+
+void populateTestGroup (tcu::TestCaseGroup* testGroup, GroupParams groupParams)
 {
        const struct
        {
@@ -543,7 +571,8 @@ void populateTestGroup (tcu::TestCaseGroup* testGroup, bool zeroViewportHeight)
                {
                        frontFace[ndxFrontFace].frontFace,
                        cullMode[ndxCullMode].cullMode,
-                       zeroViewportHeight
+                       groupParams.zeroViewportHeight,
+                       groupParams.useDynamicRendering
                };
                std::ostringstream      name;
                name << frontFace[ndxFrontFace].name << "_" << cullMode[ndxCullMode].name;
@@ -554,14 +583,16 @@ void populateTestGroup (tcu::TestCaseGroup* testGroup, bool zeroViewportHeight)
 
 }      // anonymous
 
-tcu::TestCaseGroup*    createNegativeViewportHeightTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup*    createNegativeViewportHeightTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "negative_viewport_height", "Negative viewport height (VK_KHR_maintenance1)", populateTestGroup, false);
+       GroupParams groupParams { false, useDynamicRendering };
+       return createTestGroup(testCtx, "negative_viewport_height", "Negative viewport height (VK_KHR_maintenance1)", populateTestGroup, groupParams);
 }
 
-tcu::TestCaseGroup*    createZeroViewportHeightTests (tcu::TestContext& testCtx)
+tcu::TestCaseGroup*    createZeroViewportHeightTests (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "zero_viewport_height", "Zero viewport height (VK_KHR_maintenance1)", populateTestGroup, true);
+       GroupParams groupParams{ false, useDynamicRendering };
+       return createTestGroup(testCtx, "zero_viewport_height", "Zero viewport height (VK_KHR_maintenance1)", populateTestGroup, groupParams);
 }
 
 }      // Draw
index 6a1c109..7b34916 100644 (file)
@@ -31,8 +31,8 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*    createNegativeViewportHeightTests       (tcu::TestContext& testCtx);
-tcu::TestCaseGroup*    createZeroViewportHeightTests           (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*    createNegativeViewportHeightTests       (tcu::TestContext& testCtx, bool useDynamicRendering);
+tcu::TestCaseGroup*    createZeroViewportHeightTests           (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 }      // Draw
 }      // vkt
index ea04127..596a0f6 100644 (file)
@@ -234,6 +234,7 @@ struct TestParams
        vector<VkRect2D>                staticScissors;
        vector<TestCommandSp>   commands;
        bool                                    usesMultipleScissors;
+       bool                                    usesDynamicRendering;
        VkExtent2D                              framebufferSize;
 };
 
@@ -303,6 +304,9 @@ ScissorTestCase::~ScissorTestCase (void)
 
 void ScissorTestCase::checkSupport (Context& context) const
 {
+       if (m_params.usesDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+
        if (m_params.usesMultipleScissors)
        {
                context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_GEOMETRY_SHADER);
@@ -363,6 +367,7 @@ TestInstance* ScissorTestCase::createInstance (Context& context) const
 TestStatus ScissorTestInstance::iterate (void)
 {
        ConstPixelBufferAccess                  frame;
+       VkFormat                                                colorImageFormat                = VK_FORMAT_R8G8B8A8_UNORM;
        de::SharedPtr<Image>                    colorTargetImage;
        TestLog&                                                log                                             = m_context.getTestContext().getLog();
        const DeviceInterface&                  vk                                              = m_context.getDeviceInterface();
@@ -389,18 +394,19 @@ TestStatus ScissorTestInstance::iterate (void)
        // Create color buffer image
        {
                const VkExtent3D                targetImageExtent               = { WIDTH, HEIGHT, 1 };
-               const ImageCreateInfo   targetImageCreateInfo   (VK_IMAGE_TYPE_2D, VK_FORMAT_R8G8B8A8_UNORM, targetImageExtent, 1, 1, VK_SAMPLE_COUNT_1_BIT,
+               const ImageCreateInfo   targetImageCreateInfo   (VK_IMAGE_TYPE_2D, colorImageFormat, targetImageExtent, 1, 1, VK_SAMPLE_COUNT_1_BIT,
                                                                                                                 VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT);
                colorTargetImage = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
        }
 
-       // Create render pass and frame buffer
-       {
-               const ImageViewCreateInfo       colorTargetViewInfo             (colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, VK_FORMAT_R8G8B8A8_UNORM);
-               colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
+       const ImageViewCreateInfo       colorTargetViewInfo(colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, colorImageFormat);
+       colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
 
+       // Create render pass
+       if (!m_params.usesDynamicRendering)
+       {
                RenderPassCreateInfo            renderPassCreateInfo;
-               renderPassCreateInfo.addAttachment(AttachmentDescription(VK_FORMAT_R8G8B8A8_UNORM,
+               renderPassCreateInfo.addAttachment(AttachmentDescription(colorImageFormat,
                                                                                                                                 VK_SAMPLE_COUNT_1_BIT,
                                                                                                                                 VK_ATTACHMENT_LOAD_OP_CLEAR,
                                                                                                                                 VK_ATTACHMENT_STORE_OP_STORE,
@@ -410,15 +416,15 @@ TestStatus ScissorTestInstance::iterate (void)
                                                                                                                                 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL));
 
                const VkAttachmentReference     colorAttachmentRef              = { 0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL };
-               vector<VkImageView>                     colorAttachment                 (1, *colorTargetView);
                renderPassCreateInfo.addSubpass(SubpassDescription(VK_PIPELINE_BIND_POINT_GRAPHICS, 0, 0, DE_NULL, 1, &colorAttachmentRef,
                                                                                                                   DE_NULL, AttachmentReference(), 0, DE_NULL));
 
                renderPass = createRenderPass(vk, device, &renderPassCreateInfo);
 
+               // Create framebuffer
+               vector<VkImageView>                     colorAttachment { *colorTargetView };
                const FramebufferCreateInfo     framebufferCreateInfo(*renderPass, colorAttachment, framebufferSize.width, framebufferSize.height, 1);
-
-               framebuffer     = createFramebuffer(vk, device, &framebufferCreateInfo);
+               framebuffer = createFramebuffer(vk, device, &framebufferCreateInfo);
        }
 
        // Create vertex buffer
@@ -488,6 +494,19 @@ TestStatus ScissorTestInstance::iterate (void)
                        pipelineCreateInfo.addState(PipelineCreateInfo::ViewportState(numScissors, vector<VkViewport>(numScissors, viewport), m_params.staticScissors));
                }
 
+               vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+               {
+                       vk::VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+                       DE_NULL,
+                       0u,
+                       1u,
+                       &colorImageFormat,
+                       vk::VK_FORMAT_UNDEFINED
+               };
+
+               if (m_params.usesDynamicRendering)
+                       pipelineCreateInfo.pNext = &renderingCreateInfo;
+
                pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
        }
 
@@ -497,7 +516,8 @@ TestStatus ScissorTestInstance::iterate (void)
                const VkRect2D                          renderArea                      = makeRect2D(framebufferSize);
                const VkDeviceSize                      vertexBufferOffset      = 0;
                const VkOffset3D                        zeroOffset                      = { 0, 0, 0 };
-               const Vec4                                      clearColor                      (0.0f, 0.0f, 0.0f, 1.0f);
+               const tcu::Vec4                         clearColor                      = { 0.0f, 0.0f, 0.0f, 1.0f };
+               const VkClearValue                      clearValue                      = makeClearValueColor(clearColor);
 
                clearColorImage(vk, device, m_context.getUniversalQueue(), m_context.getUniversalQueueFamilyIndex(), colorTargetImage->object(), clearColor,
                                                VK_IMAGE_LAYOUT_UNDEFINED,
@@ -505,7 +525,12 @@ TestStatus ScissorTestInstance::iterate (void)
                                                VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
 
                beginCommandBuffer(vk, *cmdBuffer, 0u);
-               beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, renderArea, clearColor);
+
+               if (m_params.usesDynamicRendering)
+                       beginRendering(vk, *cmdBuffer, *colorTargetView, renderArea, clearValue, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_ATTACHMENT_LOAD_OP_CLEAR);
+               else
+                       beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, renderArea, clearColor);
+
                if (vertexBufferSize > 0)
                {
                        const VkBuffer buffer = vertexBuffer->object();
@@ -516,7 +541,11 @@ TestStatus ScissorTestInstance::iterate (void)
                for (size_t commandIdx = 0; commandIdx < m_params.commands.size(); commandIdx++)
                        m_params.commands[commandIdx]->addCommands(vk, *cmdBuffer);
 
-               endRenderPass(vk, *cmdBuffer);
+               if (m_params.usesDynamicRendering)
+                       endRendering(vk, *cmdBuffer);
+               else
+                       endRenderPass(vk, *cmdBuffer);
+
                transition2DImage(vk, *cmdBuffer, colorTargetImage->object(),
                                                  VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
                                                  VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
@@ -565,7 +594,7 @@ TestStatus ScissorTestInstance::iterate (void)
        return TestStatus(res, qpGetTestResultName(res));
 }
 
-void createTests (TestCaseGroup* testGroup)
+void createTests (TestCaseGroup* testGroup, bool useDynamicRendering)
 {
        TestContext&            testCtx         = testGroup->getTestContext();
        const Vec4                      red                     (1.0f, 0.0f, 0.0f, 1.0f);
@@ -577,6 +606,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(30, 40, WIDTH - 60, HEIGHT - 80));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(10, 10, 50, 50, red)));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(WIDTH - 80, HEIGHT - 100, 30, 40, green)));
@@ -588,6 +618,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(30, 40, WIDTH - 60, HEIGHT - 80));
                params.commands.push_back(TestCommandSp(new RectClearTestCommand(10, 10, 50, 50, red)));
                params.commands.push_back(TestCommandSp(new RectClearTestCommand(WIDTH - 80, HEIGHT - 100, 30, 40, green)));
@@ -599,6 +630,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(30, 40, WIDTH - 60, HEIGHT - 70));
                params.staticScissors.push_back(makeRect2D(40, 50, WIDTH - 60, HEIGHT - 70));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(10, 10, WIDTH - 10, HEIGHT - 10, red)));
@@ -610,6 +642,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(30, 40, WIDTH, HEIGHT));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH, HEIGHT + 30, green)));
 
@@ -620,6 +653,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(WIDTH + 30, HEIGHT + 40, WIDTH, HEIGHT));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(100, 100, 20, 30, green)));
 
@@ -630,6 +664,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(WIDTH, 0, WIDTH, HEIGHT));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(100, 100, 20, 30, green)));
 
@@ -640,6 +675,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(100, 100, 0x7fffffff - 100, 0x7fffffff - 100));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH, HEIGHT, green)));
 
@@ -650,6 +686,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
 
                for (deUint32 i = 0; i < 16; i++)
                        params.staticScissors.push_back(makeRect2D(10 + i * 3, 20 + i * 2, WIDTH / 2, HEIGHT / 2));
@@ -663,6 +700,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(0, 0, 0, 0));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(10, 10, 50, 50, red)));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(WIDTH - 80, HEIGHT - 100, 30, 40, green)));
@@ -674,6 +712,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, vector<VkRect2D>(1, makeRect2D(30, 40, WIDTH - 60, HEIGHT - 80)))));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(10, 10, 50, 50, red)));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(WIDTH - 80, HEIGHT - 100, 30, 40, green)));
@@ -685,6 +724,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, vector<VkRect2D>(1, makeRect2D(0, 0, 0, 0)))));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(10, 10, 50, 50, red)));
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, vector<VkRect2D>(1, makeRect2D(30, 40, WIDTH - 60, HEIGHT - 80)))));
@@ -700,6 +740,8 @@ void createTests (TestCaseGroup* testGroup)
                vector<VkRect2D>        scissors;
 
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
+
                scissors.push_back(rect);
                rect.offset.x += 10;
                rect.offset.y += 10;
@@ -727,6 +769,8 @@ void createTests (TestCaseGroup* testGroup)
                vector<VkRect2D>        scissors;
 
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
+
                scissors.push_back(rect);
                rect.offset.x += 10;
                rect.offset.y += 10;
@@ -755,6 +799,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, vector<VkRect2D>(1, makeRect2D(30, 40, WIDTH, HEIGHT)))));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH + 50, HEIGHT + 20, green)));
 
@@ -765,6 +810,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, vector<VkRect2D>(1, makeRect2D(WIDTH + 30, HEIGHT + 40, WIDTH, HEIGHT)))));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(100, 100, 20, 30, green)));
 
@@ -775,6 +821,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, vector<VkRect2D>(1, makeRect2D(WIDTH, 0, WIDTH, HEIGHT)))));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(100, 100, 20, 30, green)));
 
@@ -785,6 +832,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, vector<VkRect2D>(1, makeRect2D(100, 100, 0x7fffffff - 100, 0x7fffffff - 100)))));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH, HEIGHT, green)));
 
@@ -796,6 +844,7 @@ void createTests (TestCaseGroup* testGroup)
                TestParams                      params;
                vector<VkRect2D>        scissors;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
 
                for (deUint32 i = 0; i < 16; i++)
                        scissors.push_back(makeRect2D(10 + i * 3, 20 + i * 2, WIDTH / 2, HEIGHT / 2));
@@ -810,6 +859,7 @@ void createTests (TestCaseGroup* testGroup)
        {
                TestParams params;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, vector<VkRect2D>(1, makeRect2D(30, 40, WIDTH - 60, HEIGHT - 80)))));
                params.commands.push_back(TestCommandSp(new RectClearTestCommand(10, 10, 50, 50, red)));
                params.commands.push_back(TestCommandSp(new RectClearTestCommand(WIDTH - 80, HEIGHT - 100, 30, 40, green)));
@@ -823,6 +873,8 @@ void createTests (TestCaseGroup* testGroup)
                vector<VkRect2D>        scissors;
 
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
+
                scissors.push_back(makeRect2D(30, 40, 50, 60));
                scissors.push_back(makeRect2D(40, 20, 50, 50));
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, scissors)));
@@ -850,6 +902,7 @@ void createTests (TestCaseGroup* testGroup)
 
                params.framebufferSize = size;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
                params.staticScissors.push_back(makeRect2D(1, 1, size.width - 2, size.height - 2));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
 
@@ -869,6 +922,7 @@ void createTests (TestCaseGroup* testGroup)
 
                params.framebufferSize = size;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
 
                scissors.push_back(makeRect2D(1, 1, size.width - 2, size.height - 2));
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, scissors)));
@@ -889,6 +943,7 @@ void createTests (TestCaseGroup* testGroup)
 
                params.framebufferSize = size;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
 
                params.staticScissors.push_back(makeRect2D(0, 0, size.width + 1, size.height + 1));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
@@ -909,6 +964,7 @@ void createTests (TestCaseGroup* testGroup)
 
                params.framebufferSize = size;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
 
                scissors.push_back(makeRect2D(0, 0, size.width + 1, size.height + 1));
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, scissors)));
@@ -929,6 +985,7 @@ void createTests (TestCaseGroup* testGroup)
 
                params.framebufferSize = size;
                params.dynamicScissor = false;
+               params.usesDynamicRendering = useDynamicRendering;
 
                params.staticScissors.push_back(makeRect2D(0, 0, WIDTH * 2, HEIGHT * 2));
                params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
@@ -949,6 +1006,7 @@ void createTests (TestCaseGroup* testGroup)
 
                params.framebufferSize = size;
                params.dynamicScissor = true;
+               params.usesDynamicRendering = useDynamicRendering;
 
                scissors.push_back(makeRect2D(0, 0, WIDTH * 2, HEIGHT * 2));
                params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, scissors)));
@@ -960,9 +1018,9 @@ void createTests (TestCaseGroup* testGroup)
 
 }      // anonymous
 
-TestCaseGroup* createScissorTests (TestContext& testCtx)
+TestCaseGroup* createScissorTests (TestContext& testCtx, bool useDynamicRendering)
 {
-       return createTestGroup(testCtx, "scissor", "Scissor tests", createTests);
+       return createTestGroup(testCtx, "scissor", "Scissor tests", createTests, useDynamicRendering);
 }
 
 }      // Draw
index 3c52b98..d2a8476 100644 (file)
@@ -32,7 +32,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup* createScissorTests (tcu::TestContext& testCtx);
+tcu::TestCaseGroup* createScissorTests (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index 32bd129..f66d17f 100644 (file)
@@ -56,12 +56,6 @@ struct FlagsTestSpec : public TestSpecBase
        TestFlags       flags;
 };
 
-inline FlagsTestSpec addFlags (FlagsTestSpec spec, const TestFlags flags)
-{
-       spec.flags |= flags;
-       return spec;
-}
-
 enum Constants
 {
        // \note Data layout in buffers (junk data and good data is intertwined).
@@ -102,7 +96,7 @@ private:
 };
 
 DrawTest::DrawTest (Context &context, TestSpec testSpec)
-       : DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.topology)
+       : DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.useDynamicRendering, testSpec.topology)
        , m_flags                       (testSpec.flags)
 {
        DE_ASSERT(m_topology == vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP);
@@ -224,7 +218,7 @@ tcu::TestStatus DrawTest::iterate (void)
 {
        // Draw
        {
-               beginRenderPass();
+               beginRender();
 
                const vk::VkDeviceSize  vertexBufferOffset      = 0;
                const vk::VkBuffer              vertexBuffer            = m_vertexBuffer->object();
@@ -282,7 +276,7 @@ tcu::TestStatus DrawTest::iterate (void)
                                m_vk.cmdDraw(*m_cmdBuffer, NUM_VERTICES, numInstances, NDX_FIRST_VERTEX, firstInstance);
                }
 
-               endRenderPass(m_vk, *m_cmdBuffer);
+               endRender();
                endCommandBuffer(m_vk, *m_cmdBuffer);
        }
 
@@ -311,7 +305,7 @@ tcu::TestStatus DrawTest::iterate (void)
        }
 }
 
-void checkSupport (Context& context, TestFlags flags)
+void checkSupport (Context& context, DrawTest::TestSpec testSpec)
 {
        context.requireDeviceFunctionality("VK_KHR_shader_draw_parameters");
 
@@ -342,14 +336,17 @@ void checkSupport (Context& context, TestFlags flags)
                        TCU_THROW(NotSupportedError, "shaderDrawParameters feature not supported by the device");
        }
 
-       if (flags & TEST_FLAG_MULTIDRAW)
+       if (testSpec.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+
+       if (testSpec.flags & TEST_FLAG_MULTIDRAW)
                context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_MULTI_DRAW_INDIRECT);
 
-       if (flags & TEST_FLAG_FIRST_INSTANCE)
+       if (testSpec.flags & TEST_FLAG_FIRST_INSTANCE)
                context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_DRAW_INDIRECT_FIRST_INSTANCE);
 }
 
-void addDrawCase (tcu::TestCaseGroup* group, const DrawTest::TestSpec testSpec, const TestFlags flags)
+void addDrawCase (tcu::TestCaseGroup* group, DrawTest::TestSpec testSpec, const TestFlags flags)
 {
        std::ostringstream name;
        name << "draw";
@@ -359,13 +356,16 @@ void addDrawCase (tcu::TestCaseGroup* group, const DrawTest::TestSpec testSpec,
        if (flags & TEST_FLAG_INSTANCED)                name << "_instanced";
        if (flags & TEST_FLAG_FIRST_INSTANCE)   name << "_first_instance";
 
-       group->addChild(new InstanceFactory<DrawTest, FunctionSupport1<TestFlags>>(group->getTestContext(), name.str(), "", addFlags(testSpec, flags), FunctionSupport1<TestFlags>::Args(checkSupport, testSpec.flags | flags)));
+       testSpec.flags |= flags;
+
+       group->addChild(new InstanceFactory<DrawTest, FunctionSupport1<DrawTest::TestSpec>>(group->getTestContext(), name.str(), "", testSpec, FunctionSupport1<DrawTest::TestSpec>::Args(checkSupport, testSpec)));
 }
 
 }      // anonymous
 
-ShaderDrawParametersTests::ShaderDrawParametersTests (tcu::TestContext &testCtx)
-       : TestCaseGroup (testCtx, "shader_draw_parameters", "VK_KHR_shader_draw_parameters")
+ShaderDrawParametersTests::ShaderDrawParametersTests (tcu::TestContext &testCtx, bool useDynamicRendering)
+       : TestCaseGroup                 (testCtx, "shader_draw_parameters", "VK_KHR_shader_draw_parameters")
+       , m_useDynamicRendering (useDynamicRendering)
 {
 }
 
@@ -375,6 +375,7 @@ void ShaderDrawParametersTests::init (void)
                DrawTest::TestSpec testSpec;
                testSpec.shaders[glu::SHADERTYPE_VERTEX]        = "vulkan/draw/VertexFetchShaderDrawParameters.vert";
                testSpec.shaders[glu::SHADERTYPE_FRAGMENT]      = "vulkan/draw/VertexFetch.frag";
+               testSpec.useDynamicRendering                            = m_useDynamicRendering;
                testSpec.topology                                                       = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
                testSpec.flags                                                          = 0;
 
@@ -389,6 +390,7 @@ void ShaderDrawParametersTests::init (void)
                DrawTest::TestSpec testSpec;
                testSpec.shaders[glu::SHADERTYPE_VERTEX]        = "vulkan/draw/VertexFetchShaderDrawParameters.vert";
                testSpec.shaders[glu::SHADERTYPE_FRAGMENT]      = "vulkan/draw/VertexFetch.frag";
+               testSpec.useDynamicRendering                            = m_useDynamicRendering;
                testSpec.topology                                                       = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
                testSpec.flags                                                          = TEST_FLAG_INSTANCED;
 
@@ -405,6 +407,7 @@ void ShaderDrawParametersTests::init (void)
                DrawTest::TestSpec testSpec;
                testSpec.shaders[glu::SHADERTYPE_VERTEX]        = "vulkan/draw/VertexFetchShaderDrawParametersDrawIndex.vert";
                testSpec.shaders[glu::SHADERTYPE_FRAGMENT]      = "vulkan/draw/VertexFetch.frag";
+               testSpec.useDynamicRendering                            = m_useDynamicRendering;
                testSpec.topology                                                       = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
                testSpec.flags                                                          = TEST_FLAG_INDIRECT | TEST_FLAG_MULTIDRAW;
 
index 02c532a..d8239b7 100644 (file)
@@ -33,12 +33,15 @@ namespace Draw
 class ShaderDrawParametersTests : public tcu::TestCaseGroup
 {
 public:
-                                                               ShaderDrawParametersTests       (tcu::TestContext& testCtx);
+                                                               ShaderDrawParametersTests       (tcu::TestContext& testCtx, bool useDynamicRendering);
        void                                            init                                            (void);
 
 private:
                                                                ShaderDrawParametersTests       (const ShaderDrawParametersTests& other);
        ShaderDrawParametersTests&      operator=                                       (const ShaderDrawParametersTests& other);
+
+private:
+       const bool m_useDynamicRendering;
 };
 
 } // Draw
index 9c051aa..fee11dc 100644 (file)
@@ -71,6 +71,12 @@ enum Constants
        MIN_MAX_VIEWPORTS = 16,                         //!< Minimum number of viewports for an implementation supporting multiViewport.
 };
 
+struct TestParams
+{
+       int             numLayers;
+       bool    useDynamicRendering;
+};
+
 template<typename T>
 inline VkDeviceSize sizeInBytes(const std::vector<T>& vec)
 {
@@ -298,7 +304,7 @@ Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&               vk,
                3,                                                                                                                              // uint32_t                                                                     patchControlPoints;
        };
 
-       const VkGraphicsPipelineCreateInfo graphicsPipelineInfo =
+       VkGraphicsPipelineCreateInfo graphicsPipelineInfo
        {
                VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,                                        // VkStructureType                                                                      sType;
                DE_NULL,                                                                                                                        // const void*                                                                          pNext;
@@ -321,6 +327,21 @@ Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&              vk,
                0,                                                                                                                                      // deInt32                                                                                      basePipelineIndex;
        };
 
+       VkFormat colorAttachmentFormat = VK_FORMAT_R8G8B8A8_UNORM;
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               1u,
+               &colorAttachmentFormat,
+               VK_FORMAT_UNDEFINED
+       };
+
+       // when pipeline is created without render pass we are using dynamic rendering
+       if (renderPass == DE_NULL)
+               graphicsPipelineInfo.pNext = &renderingCreateInfo;
+
        return createGraphicsPipeline(vk, device, DE_NULL, &graphicsPipelineInfo);
 }
 
@@ -340,9 +361,9 @@ tcu::TextureLevel generateReferenceImage (const tcu::TextureFormat  format,
        return image;
 }
 
-void initVertexTestPrograms (SourceCollections& programCollection, const int numViewports)
+void initVertexTestPrograms (SourceCollections& programCollection, const TestParams params)
 {
-       DE_UNREF(numViewports);
+       DE_UNREF(params.numLayers);
 
        // Vertex shader
        {
@@ -381,9 +402,9 @@ void initVertexTestPrograms (SourceCollections& programCollection, const int num
        }
 }
 
-void initTessellationTestPrograms (SourceCollections& programCollection, const int numViewports)
+void initTessellationTestPrograms (SourceCollections& programCollection, const TestParams params)
 {
-       DE_UNREF(numViewports);
+       DE_UNREF(params.numLayers);
 
        // Vertex shader
        {
@@ -586,13 +607,15 @@ public:
        };
 
        Renderer (Context&                                                                      context,
+                         const bool                                                            useDynamicRendering,
                          const UVec2&                                                          renderSize,
                          const int                                                                     numLayers,
                          const VkFormat                                                        colorFormat,
                          const Vec4&                                                           clearColor,
                          const std::vector<PositionColorVertex>&       vertices,
                          const Shader                                                          shader)
-               : m_renderSize                          (renderSize)
+               : m_useDynamicRendering         (useDynamicRendering)
+               , m_renderSize                          (renderSize)
                , m_colorFormat                         (colorFormat)
                , m_colorSubresourceRange       (makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, numLayers))
                , m_clearColor                          (clearColor)
@@ -622,11 +645,17 @@ public:
 
                m_vertexModule          = createShaderModule    (vk, device, context.getBinaryCollection().get("vert"), 0u);
                m_fragmentModule        = createShaderModule    (vk, device, context.getBinaryCollection().get("frag"), 0u);
-               m_renderPass            = makeRenderPass                (vk, device, m_colorFormat);
-               m_framebuffer           = makeFramebuffer               (vk, device, *m_renderPass, m_colorAttachment.get(),
+
+               if (!m_useDynamicRendering)
+               {
+                       m_renderPass    = makeRenderPass                (vk, device, m_colorFormat);
+
+                       m_framebuffer   = makeFramebuffer               (vk, device, *m_renderPass, m_colorAttachment.get(),
                                                                                                         static_cast<deUint32>(m_renderSize.x()),
                                                                                                         static_cast<deUint32>(m_renderSize.y()),
                                                                                                         numLayers);
+               }
+
                m_pipelineLayout        = makePipelineLayout    (vk, device);
                m_pipeline                      = makeGraphicsPipeline  (vk, device, *m_pipelineLayout, *m_renderPass, *m_vertexModule, *m_tessellationControlModule,
                                                                                                         *m_tessellationEvaluationModule, *m_fragmentModule, m_renderSize);
@@ -648,17 +677,27 @@ public:
                        makeOffset2D(0, 0),
                        makeExtent2D(m_renderSize.x(), m_renderSize.y()),
                };
-               const VkRenderPassBeginInfo renderPassBeginInfo =
+
+               if (m_useDynamicRendering)
                {
-                       VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,               // VkStructureType         sType;
-                       DE_NULL,                                                                                // const void*             pNext;
-                       *m_renderPass,                                                                  // VkRenderPass            renderPass;
-                       *m_framebuffer,                                                                 // VkFramebuffer           framebuffer;
-                       renderArea,                                                                             // VkRect2D                renderArea;
-                       1u,                                                                                             // uint32_t                clearValueCount;
-                       &clearValue,                                                                    // const VkClearValue*     pClearValues;
-               };
-               vk.cmdBeginRenderPass(*m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+                       initialTransitionColor2DImage(vk, *m_cmdBuffer, *m_colorImage, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                                                                                 VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT);
+                       beginRendering(vk, *m_cmdBuffer, *m_colorAttachment, renderArea, clearValue, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_ATTACHMENT_LOAD_OP_CLEAR, 0, m_numLayers);
+               }
+               else
+               {
+                       const VkRenderPassBeginInfo renderPassBeginInfo =
+                       {
+                               VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,               // VkStructureType         sType;
+                               DE_NULL,                                                                                // const void*             pNext;
+                               *m_renderPass,                                                                  // VkRenderPass            renderPass;
+                               *m_framebuffer,                                                                 // VkFramebuffer           framebuffer;
+                               renderArea,                                                                             // VkRect2D                renderArea;
+                               1u,                                                                                             // uint32_t                clearValueCount;
+                               &clearValue,                                                                    // const VkClearValue*     pClearValues;
+                       };
+                       vk.cmdBeginRenderPass(*m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+               }
 
                vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
                {
@@ -667,7 +706,11 @@ public:
                        vk.cmdBindVertexBuffers(*m_cmdBuffer, 0u, 1u, &vertexBuffer, &vertexBufferOffset);
                }
                vk.cmdDraw(*m_cmdBuffer, static_cast<deUint32>(m_numLayers * 6), 1u, 0u, 0u);   // two triangles per layer
-               vk.cmdEndRenderPass(*m_cmdBuffer);
+
+               if (m_useDynamicRendering)
+                       endRendering(vk, *m_cmdBuffer);
+               else
+                       vk.cmdEndRenderPass(*m_cmdBuffer);
 
                copyImageToBuffer(vk, *m_cmdBuffer, *m_colorImage, colorBuffer, tcu::IVec2(m_renderSize.x(), m_renderSize.y()), VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, m_colorSubresourceRange.layerCount);
 
@@ -676,6 +719,7 @@ public:
        }
 
 private:
+       const bool                                                              m_useDynamicRendering;
        const UVec2                                                             m_renderSize;
        const VkFormat                                                  m_colorFormat;
        const VkImageSubresourceRange                   m_colorSubresourceRange;
@@ -703,11 +747,14 @@ private:
        Renderer&       operator=       (const Renderer&);
 };
 
-void checkRequirements (Context& context, const int)
+void checkRequirements (Context& context, const TestParams params)
 {
        context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_MULTI_VIEWPORT);
        context.requireDeviceFunctionality("VK_EXT_shader_viewport_index_layer");
 
+       if (params.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+
        const VkPhysicalDeviceLimits    limits  = context.getDeviceProperties().limits;
 
        if (limits.maxFramebufferLayers < MIN_MAX_FRAMEBUFFER_LAYERS)
@@ -717,7 +764,7 @@ void checkRequirements (Context& context, const int)
                TCU_FAIL("multiViewport supported but maxViewports is less than the minimum required");
 }
 
-tcu::TestStatus testVertexShader (Context& context, const int numLayers)
+tcu::TestStatus testVertexShader (Context& context, const TestParams params)
 {
        const DeviceInterface&                                  vk                                      = context.getDeviceInterface();
        const VkDevice                                                  device                          = context.getDevice();
@@ -726,11 +773,11 @@ tcu::TestStatus testVertexShader (Context& context, const int numLayers)
        const UVec2                                                             renderSize                      (256, 256);
        const VkFormat                                                  colorFormat                     = VK_FORMAT_R8G8B8A8_UNORM;
        const Vec4                                                              clearColor                      (0.5f, 0.5f, 0.5f, 1.0f);
-       const std::vector<UVec4>                                grid                            = generateGrid(numLayers, renderSize);
-       const std::vector<Vec4>                                 colors                          = generateColors(numLayers);
+       const std::vector<UVec4>                                grid                            = generateGrid(params.numLayers, renderSize);
+       const std::vector<Vec4>                                 colors                          = generateColors(params.numLayers);
        const std::vector<PositionColorVertex>  vertices                        = generateVertices(grid, colors, renderSize);
 
-       const VkDeviceSize                                              colorBufferSize         = renderSize.x() * renderSize.y() * tcu::getPixelSize(mapVkFormat(colorFormat)) * numLayers;
+       const VkDeviceSize                                              colorBufferSize         = renderSize.x() * renderSize.y() * tcu::getPixelSize(mapVkFormat(colorFormat)) * params.numLayers;
 
        const SharedPtr<Buffer>                                 colorBuffer                     = Buffer::createAndAlloc(vk, device, makeBufferCreateInfo(colorBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT), allocator, MemoryRequirement::HostVisible);
 
@@ -743,13 +790,13 @@ tcu::TestStatus testVertexShader (Context& context, const int numLayers)
 
        {
                context.getTestContext().getLog()
-                       << tcu::TestLog::Message << "Rendering a rectangle in each of the " << numLayers << " layer(s)." << tcu::TestLog::EndMessage
+                       << tcu::TestLog::Message << "Rendering a rectangle in each of the " << params.numLayers << " layer(s)." << tcu::TestLog::EndMessage
                        << tcu::TestLog::Message << "Not covered area will be filled with a gray color." << tcu::TestLog::EndMessage;
        }
 
        // Draw.
        {
-               const Renderer renderer (context, renderSize, numLayers, colorFormat, clearColor, vertices, Renderer::VERTEX);
+               const Renderer renderer (context, params.useDynamicRendering, renderSize, params.numLayers, colorFormat, clearColor, vertices, Renderer::VERTEX);
                renderer.draw(context, colorBuffer->object());
        }
 
@@ -759,9 +806,9 @@ tcu::TestStatus testVertexShader (Context& context, const int numLayers)
                invalidateAlloc(vk, device, alloc);
 
                deUint8* resultMem = reinterpret_cast<deUint8*>(alloc.getHostPtr());
-               for (int i = 0; i < numLayers; i++)
+               for (int i = 0; i < params.numLayers; i++)
                {
-                       const tcu::ConstPixelBufferAccess       resultImage             (mapVkFormat(colorFormat), renderSize.x(), renderSize.y(), 1u, resultMem + ((colorBufferSize / numLayers) * i));
+                       const tcu::ConstPixelBufferAccess       resultImage             (mapVkFormat(colorFormat), renderSize.x(), renderSize.y(), 1u, resultMem + ((colorBufferSize / params.numLayers) * i));
                        const tcu::TextureLevel                         referenceImage  = generateReferenceImage(mapVkFormat(colorFormat), renderSize, clearColor, grid[i], colors[i]);
                        std::string imageSetName = "layer_" + de::toString(i);
                        std::string imageSetDesc = "Image compare for layer " + de::toString(i);
@@ -773,7 +820,7 @@ tcu::TestStatus testVertexShader (Context& context, const int numLayers)
        return tcu::TestStatus::pass("OK");
 }
 
-tcu::TestStatus testTessellationShader (Context& context, const int numLayers)
+tcu::TestStatus testTessellationShader (Context& context, const TestParams params)
 {
        const VkPhysicalDeviceFeatures&                 features                        = context.getDeviceFeatures();
        if (!features.tessellationShader)
@@ -786,11 +833,11 @@ tcu::TestStatus testTessellationShader (Context& context, const int numLayers)
        const UVec2                                                             renderSize                      (256, 256);
        const VkFormat                                                  colorFormat                     = VK_FORMAT_R8G8B8A8_UNORM;
        const Vec4                                                              clearColor                      (0.5f, 0.5f, 0.5f, 1.0f);
-       const std::vector<UVec4>                                grid                            = generateGrid(numLayers, renderSize);
-       const std::vector<Vec4>                                 colors                          = generateColors(numLayers);
+       const std::vector<UVec4>                                grid                            = generateGrid(params.numLayers, renderSize);
+       const std::vector<Vec4>                                 colors                          = generateColors(params.numLayers);
        const std::vector<PositionColorVertex>  vertices                        = generateVertices(grid, colors, renderSize);
 
-       const VkDeviceSize                                              colorBufferSize         = renderSize.x() * renderSize.y() * tcu::getPixelSize(mapVkFormat(colorFormat)) * numLayers;
+       const VkDeviceSize                                              colorBufferSize         = renderSize.x() * renderSize.y() * tcu::getPixelSize(mapVkFormat(colorFormat)) * params.numLayers;
 
        const SharedPtr<Buffer>                                 colorBuffer                     = Buffer::createAndAlloc(vk, device, makeBufferCreateInfo(colorBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT), allocator, MemoryRequirement::HostVisible);
 
@@ -803,13 +850,13 @@ tcu::TestStatus testTessellationShader (Context& context, const int numLayers)
 
        {
                context.getTestContext().getLog()
-                       << tcu::TestLog::Message << "Rendering a rectangle in each of the " << numLayers << " layer(s)." << tcu::TestLog::EndMessage
+                       << tcu::TestLog::Message << "Rendering a rectangle in each of the " << params.numLayers << " layer(s)." << tcu::TestLog::EndMessage
                        << tcu::TestLog::Message << "Not covered area will be filled with a gray color." << tcu::TestLog::EndMessage;
        }
 
        // Draw.
        {
-               const Renderer renderer (context, renderSize, numLayers, colorFormat, clearColor, vertices, Renderer::TESSELLATION);
+               const Renderer renderer (context, params.useDynamicRendering, renderSize, params.numLayers, colorFormat, clearColor, vertices, Renderer::TESSELLATION);
                renderer.draw(context, colorBuffer->object());
        }
 
@@ -819,8 +866,8 @@ tcu::TestStatus testTessellationShader (Context& context, const int numLayers)
                invalidateAlloc(vk, device, alloc);
 
                deUint8* resultMem = reinterpret_cast<deUint8*>(alloc.getHostPtr());
-               for (int i = 0; i < numLayers; i++) {
-                       const tcu::ConstPixelBufferAccess       resultImage             (mapVkFormat(colorFormat), renderSize.x(), renderSize.y(), 1u, resultMem + ((colorBufferSize / numLayers) * i));
+               for (int i = 0; i < params.numLayers; i++) {
+                       const tcu::ConstPixelBufferAccess       resultImage             (mapVkFormat(colorFormat), renderSize.x(), renderSize.y(), 1u, resultMem + ((colorBufferSize / params.numLayers) * i));
                        const tcu::TextureLevel                         referenceImage  = generateReferenceImage(mapVkFormat(colorFormat), renderSize, clearColor, grid[i], colors[i]);
                        std::string imageSetName = "layer_" + de::toString(i);
                        std::string imageSetDesc = "Image compare for layer " + de::toString(i);
@@ -834,7 +881,7 @@ tcu::TestStatus testTessellationShader (Context& context, const int numLayers)
 
 } // anonymous
 
-tcu::TestCaseGroup* createShaderLayerTests     (tcu::TestContext& testCtx)
+tcu::TestCaseGroup* createShaderLayerTests     (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
        MovePtr<tcu::TestCaseGroup> group (new tcu::TestCaseGroup(testCtx, "shader_layer", ""));
 
@@ -851,16 +898,22 @@ tcu::TestCaseGroup* createShaderLayerTests        (tcu::TestContext& testCtx)
                MIN_MAX_FRAMEBUFFER_LAYERS,
        };
 
+       TestParams parmas
+       {
+               1,
+               useDynamicRendering
+       };
+
        for (int i = 0; i < DE_LENGTH_OF_ARRAY(numLayersToTest); ++i)
        {
-               int numLayers = numLayersToTest[i];
-               addFunctionCaseWithPrograms(group.get(), "vertex_shader_" + de::toString(numLayers), "", checkRequirements, initVertexTestPrograms, testVertexShader, numLayers);
+               parmas.numLayers = numLayersToTest[i];
+               addFunctionCaseWithPrograms<TestParams>(group.get(), "vertex_shader_" + de::toString(parmas.numLayers), "", checkRequirements, initVertexTestPrograms, testVertexShader, parmas);
        }
 
        for (int i = 0; i < DE_LENGTH_OF_ARRAY(numLayersToTest); ++i)
        {
-               int numLayers = numLayersToTest[i];
-               addFunctionCaseWithPrograms(group.get(), "tessellation_shader_" + de::toString(numLayers), "", checkRequirements, initTessellationTestPrograms, testTessellationShader, numLayers);
+               parmas.numLayers = numLayersToTest[i];
+               addFunctionCaseWithPrograms<TestParams>(group.get(), "tessellation_shader_" + de::toString(parmas.numLayers), "", checkRequirements, initTessellationTestPrograms, testTessellationShader, parmas);
        }
 
        return group.release();
index 026031e..36ea386 100644 (file)
@@ -32,7 +32,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*            createShaderLayerTests  (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*            createShaderLayerTests  (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index fd248e5..c2df82c 100644 (file)
@@ -73,18 +73,12 @@ enum Constants
        MIN_MAX_VIEWPORTS = 16,         //!< Minimum number of viewports for an implementation supporting multiViewport.
 };
 
-struct FragmentTestParams
+struct TestParams
 {
        int             numViewports;
        bool    writeFromVertex;
-
-       FragmentTestParams (int nvp, bool write)
-               : numViewports          (nvp)
-               , writeFromVertex       (write)
-       {
-               if (!write)
-                       DE_ASSERT(nvp == 1);
-       }
+       bool    useDynamicRendering;
+       bool    useTessellationShader;
 };
 
 template<typename T>
@@ -327,7 +321,7 @@ Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&               vk,
                3,                                                                                                                              // uint32_t                                                                     patchControlPoints;
        };
 
-       const VkGraphicsPipelineCreateInfo graphicsPipelineInfo =
+       VkGraphicsPipelineCreateInfo graphicsPipelineInfo
        {
                VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,                                        // VkStructureType                                                                      sType;
                DE_NULL,                                                                                                                        // const void*                                                                          pNext;
@@ -350,6 +344,21 @@ Move<VkPipeline> makeGraphicsPipeline (const DeviceInterface&              vk,
                0,                                                                                                                                      // deInt32                                                                                      basePipelineIndex;
        };
 
+       VkFormat colorAttachmentFormat = VK_FORMAT_R8G8B8A8_UNORM;
+       vk::VkPipelineRenderingCreateInfoKHR renderingCreateInfo
+       {
+               VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
+               DE_NULL,
+               0u,
+               1u,
+               &colorAttachmentFormat,
+               VK_FORMAT_UNDEFINED
+       };
+
+       // when pipeline is created without render pass we are using dynamic rendering
+       if (renderPass == DE_NULL)
+               graphicsPipelineInfo.pNext = &renderingCreateInfo;
+
        return createGraphicsPipeline(vk, device, DE_NULL, &graphicsPipelineInfo);
 }
 
@@ -433,10 +442,8 @@ tcu::TextureLevel generateReferenceImage (const tcu::TextureFormat format,
        return image;
 }
 
-void initVertexTestPrograms (SourceCollections& programCollection, const int numViewports)
+void initVertexTestPrograms (SourceCollections& programCollection, const TestParams)
 {
-       DE_UNREF(numViewports);
-
        // Vertex shader
        {
                std::ostringstream src;
@@ -474,7 +481,7 @@ void initVertexTestPrograms (SourceCollections& programCollection, const int num
        }
 }
 
-void initFragmentTestPrograms (SourceCollections& programCollection, FragmentTestParams testParams)
+void initFragmentTestPrograms (SourceCollections& programCollection, const TestParams testParams)
 {
        // Vertex shader.
        {
@@ -517,10 +524,8 @@ void initFragmentTestPrograms (SourceCollections& programCollection, FragmentTes
        }
 }
 
-void initTessellationTestPrograms (SourceCollections& programCollection, const int numViewports)
+void initTessellationTestPrograms (SourceCollections& programCollection, const TestParams)
 {
-       DE_UNREF(numViewports);
-
        // Vertex shader
        {
                std::ostringstream src;
@@ -651,17 +656,18 @@ public:
 
        Renderer (Context&                                              context,
                          const UVec2&                                  renderSize,
-                         const int                                             numViewports,
+                         const TestParams&                             testParams,
                          const std::vector<UVec4>&             cells,
                          const VkFormat                                colorFormat,
                          const Vec4&                                   clearColor,
                          const std::vector<Vec4>&              colors,
                          const Shader                                  shader)
-               : m_renderSize                          (renderSize)
+               : m_useDynamicRendering         (testParams.useDynamicRendering)
+               , m_renderSize                          (renderSize)
                , m_colorFormat                         (colorFormat)
                , m_colorSubresourceRange       (makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u))
-               , m_clearColor                          (clearColor)
-               , m_numViewports                        (numViewports)
+               , m_clearValue                          (makeClearValueColor(clearColor))
+               , m_numViewports                        (testParams.numViewports)
                , m_colors                                      (colors)
                , m_vertices                            (generateVertices(colors))
                , m_shader                                      (shader)
@@ -691,9 +697,14 @@ public:
 
                m_vertexModule          = createShaderModule    (vk, device, context.getBinaryCollection().get("vert"), 0u);
                m_fragmentModule        = createShaderModule    (vk, device, context.getBinaryCollection().get("frag"), 0u);
-               m_renderPass            = makeRenderPass                (vk, device, m_colorFormat);
-               m_framebuffer           = makeFramebuffer               (vk, device, *m_renderPass, m_colorAttachment.get(),
+
+               if (!m_useDynamicRendering)
+               {
+                       m_renderPass    = makeRenderPass                (vk, device, m_colorFormat);
+
+                       m_framebuffer   = makeFramebuffer               (vk, device, *m_renderPass, m_colorAttachment.get(),
                                                                                                         static_cast<deUint32>(m_renderSize.x()),  static_cast<deUint32>(m_renderSize.y()));
+               }
 
                if (shader == FRAGMENT)
                {
@@ -718,7 +729,15 @@ public:
 
                beginCommandBuffer(vk, *m_cmdBuffer);
 
-               beginRenderPass(vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, m_renderSize.x(), m_renderSize.y()), m_clearColor);
+               const VkRect2D renderArea = makeRect2D(0, 0, m_renderSize.x(), m_renderSize.y());
+               if (m_useDynamicRendering)
+               {
+                       initialTransitionColor2DImage(vk, *m_cmdBuffer, *m_colorImage, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                                                                                 VK_ACCESS_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT);
+                       beginRendering(vk, *m_cmdBuffer, *m_colorAttachment, renderArea, m_clearValue, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_ATTACHMENT_LOAD_OP_CLEAR);
+               }
+               else
+                       beginRenderPass(vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, renderArea, m_clearValue);
 
                vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
                {
@@ -762,7 +781,11 @@ public:
                }
 
                vk.cmdDraw(*m_cmdBuffer, static_cast<deUint32>(m_numViewports * 6), 1u, 0u, 0u);        // two triangles per viewport
-               endRenderPass(vk, *m_cmdBuffer);
+
+               if (m_useDynamicRendering)
+                       endRendering(vk, *m_cmdBuffer);
+               else
+                       endRenderPass(vk, *m_cmdBuffer);
 
                copyImageToBuffer(vk, *m_cmdBuffer, *m_colorImage, colorBuffer, tcu::IVec2(m_renderSize.x(), m_renderSize.y()));
 
@@ -771,10 +794,11 @@ public:
        }
 
 private:
+       const bool                                                              m_useDynamicRendering;
        const UVec2                                                             m_renderSize;
        const VkFormat                                                  m_colorFormat;
        const VkImageSubresourceRange                   m_colorSubresourceRange;
-       const Vec4                                                              m_clearColor;
+       const VkClearValue                                              m_clearValue;
        const int                                                               m_numViewports;
        const std::vector<Vec4>                                 m_colors;
        const std::vector<PositionColorVertex>  m_vertices;
@@ -801,7 +825,7 @@ private:
        Renderer&       operator=       (const Renderer&);
 };
 
-tcu::TestStatus testVertexFragmentShader (Context& context, const int numViewports, Renderer::Shader shader)
+tcu::TestStatus testVertexFragmentShader (Context& context, const TestParams& testParams, Renderer::Shader shader)
 {
        const DeviceInterface&                  vk                                      = context.getDeviceInterface();
        const VkDevice                                  device                          = context.getDevice();
@@ -810,8 +834,8 @@ tcu::TestStatus testVertexFragmentShader (Context& context, const int numViewpor
        const UVec2                                             renderSize                      (128, 128);
        const VkFormat                                  colorFormat                     = VK_FORMAT_R8G8B8A8_UNORM;
        const Vec4                                              clearColor                      (0.5f, 0.5f, 0.5f, 1.0f);
-       const std::vector<Vec4>                 colors                          = generateColors(numViewports);
-       const std::vector<UVec4>                cells                           = generateGrid(numViewports, renderSize);
+       const std::vector<Vec4>                 colors                          = generateColors(testParams.numViewports);
+       const std::vector<UVec4>                cells                           = generateGrid(testParams.numViewports, renderSize);
 
        const VkDeviceSize                              colorBufferSize         = renderSize.x() * renderSize.y() * tcu::getPixelSize(mapVkFormat(colorFormat));
 
@@ -826,13 +850,13 @@ tcu::TestStatus testVertexFragmentShader (Context& context, const int numViewpor
 
        {
                context.getTestContext().getLog()
-                       << tcu::TestLog::Message << "Rendering a colorful grid of " << numViewports << " rectangle(s)." << tcu::TestLog::EndMessage
+                       << tcu::TestLog::Message << "Rendering a colorful grid of " << testParams.numViewports << " rectangle(s)." << tcu::TestLog::EndMessage
                        << tcu::TestLog::Message << "Not covered area will be filled with a gray color." << tcu::TestLog::EndMessage;
        }
 
        // Draw
        {
-               const Renderer renderer (context, renderSize, numViewports, cells, colorFormat, clearColor, colors, shader);
+               const Renderer renderer (context, renderSize, testParams, cells, colorFormat, clearColor, colors, shader);
                renderer.draw(context, colorBuffer->object());
        }
 
@@ -852,17 +876,17 @@ tcu::TestStatus testVertexFragmentShader (Context& context, const int numViewpor
        return tcu::TestStatus::pass("OK");
 }
 
-tcu::TestStatus testVertexShader (Context& context, const int numViewports)
+tcu::TestStatus testVertexShader (Context& context, const TestParams testParams)
 {
-       return testVertexFragmentShader(context, numViewports, Renderer::VERTEX);
+       return testVertexFragmentShader(context, testParams, Renderer::VERTEX);
 }
 
-tcu::TestStatus testFragmentShader (Context& context, FragmentTestParams testParams)
+tcu::TestStatus testFragmentShader (Context& context, const TestParams testParams)
 {
-       return testVertexFragmentShader(context, testParams.numViewports, Renderer::FRAGMENT);
+       return testVertexFragmentShader(context, testParams, Renderer::FRAGMENT);
 }
 
-tcu::TestStatus testTessellationShader (Context& context, const int numViewports)
+tcu::TestStatus testTessellationShader (Context& context, const TestParams testParams)
 {
        const DeviceInterface&                  vk                                      = context.getDeviceInterface();
        const VkDevice                                  device                          = context.getDevice();
@@ -871,8 +895,8 @@ tcu::TestStatus testTessellationShader (Context& context, const int numViewports
        const UVec2                                             renderSize                      (128, 128);
        const VkFormat                                  colorFormat                     = VK_FORMAT_R8G8B8A8_UNORM;
        const Vec4                                              clearColor                      (0.5f, 0.5f, 0.5f, 1.0f);
-       const std::vector<Vec4>                 colors                          = generateColors(numViewports);
-       const std::vector<UVec4>                cells                           = generateGrid(numViewports, renderSize);
+       const std::vector<Vec4>                 colors                          = generateColors(testParams.numViewports);
+       const std::vector<UVec4>                cells                           = generateGrid(testParams.numViewports, renderSize);
 
        const VkDeviceSize                              colorBufferSize         = renderSize.x() * renderSize.y() * tcu::getPixelSize(mapVkFormat(colorFormat));
 
@@ -887,13 +911,13 @@ tcu::TestStatus testTessellationShader (Context& context, const int numViewports
 
        {
                context.getTestContext().getLog()
-                       << tcu::TestLog::Message << "Rendering a colorful grid of " << numViewports << " rectangle(s)." << tcu::TestLog::EndMessage
+                       << tcu::TestLog::Message << "Rendering a colorful grid of " << testParams.numViewports << " rectangle(s)." << tcu::TestLog::EndMessage
                        << tcu::TestLog::Message << "Not covered area will be filled with a gray color." << tcu::TestLog::EndMessage;
        }
 
        // Draw
        {
-               const Renderer renderer (context, renderSize, numViewports, cells, colorFormat, clearColor, colors, Renderer::TESSELLATION);
+               const Renderer renderer (context, renderSize, testParams, cells, colorFormat, clearColor, colors, Renderer::TESSELLATION);
                renderer.draw(context, colorBuffer->object());
        }
 
@@ -913,42 +937,48 @@ tcu::TestStatus testTessellationShader (Context& context, const int numViewports
        return tcu::TestStatus::pass("OK");
 }
 
-void checkSupportVertex (Context& context, const int)
+void checkSupport (Context& context, TestParams params)
 {
        context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_MULTI_VIEWPORT);
        context.requireDeviceFunctionality("VK_EXT_shader_viewport_index_layer");
 
        if (context.getDeviceProperties().limits.maxViewports < MIN_MAX_VIEWPORTS)
                TCU_FAIL("multiViewport supported but maxViewports is less than the minimum required");
-}
-
-void checkSupportFragment (Context& context, FragmentTestParams)
-{
-       checkSupportVertex(context, 0);
-}
 
-void checkSupportTessellation (Context& context, const int)
-{
-       context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_TESSELLATION_SHADER);
+       if (params.useTessellationShader)
+               context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_TESSELLATION_SHADER);
 
-       checkSupportVertex(context, 0);
+       if (params.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
 }
 
 } // anonymous
 
-tcu::TestCaseGroup* createShaderViewportIndexTests     (tcu::TestContext& testCtx)
+tcu::TestCaseGroup* createShaderViewportIndexTests     (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
        MovePtr<tcu::TestCaseGroup> group (new tcu::TestCaseGroup(testCtx, "shader_viewport_index", ""));
 
-       for (int numViewports = 1; numViewports <= MIN_MAX_VIEWPORTS; ++numViewports)
-               addFunctionCaseWithPrograms(group.get(), "vertex_shader_" + de::toString(numViewports), "", checkSupportVertex, initVertexTestPrograms, testVertexShader, numViewports);
+       TestParams testParams
+       {
+               1,                                              // int          numViewports;
+               false,                                  // bool         writeFromVertex;
+               useDynamicRendering,    // bool         useDynamicRendering;
+               false                                   // bool         useTessellationShader;
+       };
+
+       for (testParams.numViewports = 1; testParams.numViewports <= MIN_MAX_VIEWPORTS; ++testParams.numViewports)
+               addFunctionCaseWithPrograms(group.get(), "vertex_shader_" + de::toString(testParams.numViewports), "", checkSupport, initVertexTestPrograms, testVertexShader, testParams);
 
-       addFunctionCaseWithPrograms(group.get(), "fragment_shader_implicit", "", checkSupportFragment, initFragmentTestPrograms, testFragmentShader, FragmentTestParams(1, false));
-       for (int numViewports = 1; numViewports <= MIN_MAX_VIEWPORTS; ++numViewports)
-               addFunctionCaseWithPrograms(group.get(), "fragment_shader_" + de::toString(numViewports), "", checkSupportFragment, initFragmentTestPrograms, testFragmentShader, FragmentTestParams(numViewports, true));
+       testParams.numViewports = 1;
+       addFunctionCaseWithPrograms(group.get(), "fragment_shader_implicit", "", checkSupport, initFragmentTestPrograms, testFragmentShader, testParams);
+       testParams.writeFromVertex = true;
+       for (testParams.numViewports = 1; testParams.numViewports <= MIN_MAX_VIEWPORTS; ++testParams.numViewports)
+               addFunctionCaseWithPrograms(group.get(), "fragment_shader_" + de::toString(testParams.numViewports), "", checkSupport, initFragmentTestPrograms, testFragmentShader, testParams);
+       testParams.writeFromVertex = false;
 
-       for (int numViewports = 1; numViewports <= MIN_MAX_VIEWPORTS; ++numViewports)
-               addFunctionCaseWithPrograms(group.get(), "tessellation_shader_" + de::toString(numViewports), "", checkSupportTessellation, initTessellationTestPrograms, testTessellationShader, numViewports);
+       testParams.useTessellationShader = true;
+       for (testParams.numViewports = 1; testParams.numViewports <= MIN_MAX_VIEWPORTS; ++testParams.numViewports)
+               addFunctionCaseWithPrograms(group.get(), "tessellation_shader_" + de::toString(testParams.numViewports), "", checkSupport, initTessellationTestPrograms, testTessellationShader, testParams);
 
        return group.release();
 }
index 83234e2..e82f355 100644 (file)
@@ -32,7 +32,7 @@ namespace vkt
 namespace Draw
 {
 
-tcu::TestCaseGroup*            createShaderViewportIndexTests  (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*            createShaderViewportIndexTests  (tcu::TestContext& testCtx, bool useDynamicRendering);
 
 } // Draw
 } // vkt
index c72b858..a37d2f3 100644 (file)
@@ -61,7 +61,7 @@ public:
 };
 
 SimpleDraw::SimpleDraw (Context &context, TestSpec testSpec)
-       : DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.topology)
+       : DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.useDynamicRendering, testSpec.topology)
 {
        m_data.push_back(VertexElementData(tcu::Vec4(1.0f, -1.0f, 1.0f, 1.0f), tcu::RGBA::blue().toVec(), -1));
        m_data.push_back(VertexElementData(tcu::Vec4(-1.0f, 1.0f, 1.0f, 1.0f), tcu::RGBA::blue().toVec(), -1));
@@ -113,7 +113,7 @@ tcu::TestStatus SimpleDraw::iterate (void)
        const vk::VkQueue               queue                           = m_context.getUniversalQueue();
        const vk::VkDevice              device                          = m_context.getDevice();
 
-       beginRenderPass();
+       beginRender();
 
        const vk::VkDeviceSize  vertexBufferOffset      = 0;
        const vk::VkBuffer              vertexBuffer            = m_vertexBuffer->object();
@@ -146,7 +146,7 @@ tcu::TestStatus SimpleDraw::iterate (void)
                        break;
        }
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
@@ -204,7 +204,7 @@ tcu::TestStatus SimpleDrawInstanced::iterate (void)
        const vk::VkQueue       queue                                   = m_context.getUniversalQueue();
        const vk::VkDevice      device                                  = m_context.getDevice();
 
-       beginRenderPass();
+       beginRender();
 
        const vk::VkDeviceSize  vertexBufferOffset      = 0;
        const vk::VkBuffer              vertexBuffer            = m_vertexBuffer->object();
@@ -238,7 +238,7 @@ tcu::TestStatus SimpleDrawInstanced::iterate (void)
                        break;
        }
 
-       endRenderPass(m_vk, *m_cmdBuffer);
+       endRender();
        endCommandBuffer(m_vk, *m_cmdBuffer);
 
        submitCommandsAndWait(m_vk, device, queue, m_cmdBuffer.get());
@@ -288,38 +288,50 @@ tcu::TestStatus SimpleDrawInstanced::iterate (void)
        return tcu::TestStatus(res, qpGetTestResultName(res));
 }
 
+void checkSupport(Context& context, SimpleDraw::TestSpec testSpec)
+{
+       if (testSpec.useDynamicRendering)
+               context.requireDeviceFunctionality("VK_KHR_dynamic_rendering");
+}
+
 }      // anonymous
 
-SimpleDrawTests::SimpleDrawTests (tcu::TestContext &testCtx)
-: TestCaseGroup        (testCtx, "simple_draw", "drawing simple geometry")
+SimpleDrawTests::SimpleDrawTests (tcu::TestContext &testCtx, bool useDynamicRendering)
+       : TestCaseGroup                 (testCtx, "simple_draw", "drawing simple geometry")
+       , m_useDynamicRendering (useDynamicRendering)
 {
        /* Left blank on purpose */
 }
 
 SimpleDrawTests::~SimpleDrawTests (void) {}
 
-
 void SimpleDrawTests::init (void)
 {
        {
                SimpleDraw::TestSpec testSpec;
                testSpec.shaders[glu::SHADERTYPE_VERTEX] = "vulkan/draw/VertexFetch.vert";
                testSpec.shaders[glu::SHADERTYPE_FRAGMENT] = "vulkan/draw/VertexFetch.frag";
+               testSpec.useDynamicRendering = m_useDynamicRendering;
 
                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-               addChild(new InstanceFactory<SimpleDraw>(m_testCtx, "simple_draw_triangle_list", "Draws triangle list", testSpec));
+               addChild(new InstanceFactory<SimpleDraw, FunctionSupport1<SimpleDraw::TestSpec> >
+                       (m_testCtx, "simple_draw_triangle_list", "Draws triangle list", testSpec, FunctionSupport1<SimpleDraw::TestSpec>::Args(checkSupport, testSpec)));
                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-               addChild(new InstanceFactory<SimpleDraw>(m_testCtx, "simple_draw_triangle_strip", "Draws triangle strip", testSpec));
+               addChild(new InstanceFactory<SimpleDraw, FunctionSupport1<SimpleDraw::TestSpec> >
+                       (m_testCtx, "simple_draw_triangle_strip", "Draws triangle strip", testSpec, FunctionSupport1<SimpleDraw::TestSpec>::Args(checkSupport, testSpec)));
        }
        {
                SimpleDrawInstanced::TestSpec testSpec;
                testSpec.shaders[glu::SHADERTYPE_VERTEX] = "vulkan/draw/VertexFetchInstancedFirstInstance.vert";
                testSpec.shaders[glu::SHADERTYPE_FRAGMENT] = "vulkan/draw/VertexFetch.frag";
+               testSpec.useDynamicRendering = m_useDynamicRendering;
 
                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
-               addChild(new InstanceFactory<SimpleDrawInstanced>(m_testCtx, "simple_draw_instanced_triangle_list", "Draws an instanced triangle list", testSpec));
+               addChild(new InstanceFactory<SimpleDrawInstanced, FunctionSupport1<SimpleDrawInstanced::TestSpec> >
+                       (m_testCtx, "simple_draw_instanced_triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport1<SimpleDrawInstanced::TestSpec>::Args(checkSupport, testSpec)));
                testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
-               addChild(new InstanceFactory<SimpleDrawInstanced>(m_testCtx, "simple_draw_instanced_triangle_strip", "Draws an instanced triangle strip", testSpec));
+               addChild(new InstanceFactory<SimpleDrawInstanced, FunctionSupport1<SimpleDrawInstanced::TestSpec> >
+                       (m_testCtx, "simple_draw_instanced_triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport1<SimpleDrawInstanced::TestSpec>::Args(checkSupport, testSpec)));
        }
 }
 
index 38f3bac..8f01a3a 100644 (file)
@@ -33,7 +33,7 @@ namespace Draw
 class SimpleDrawTests : public tcu::TestCaseGroup
 {
 public:
-                                               SimpleDrawTests                 (tcu::TestContext &testCtx);
+                                               SimpleDrawTests                 (tcu::TestContext &testCtx, bool useDynamicRendering);
                                                ~SimpleDrawTests                (void);
        void                            init                                    (void);
 
@@ -41,6 +41,7 @@ private:
        SimpleDrawTests                                                         (const SimpleDrawTests &other);
        SimpleDrawTests&        operator=                               (const SimpleDrawTests &other);
 
+       const bool m_useDynamicRendering;
 };
 } // Draw
 } // vkt
index fd71f1f..530cdef 100644 (file)
@@ -48,6 +48,7 @@ struct TestSpecBase
 {
        ShaderMap                               shaders;
        vk::VkPrimitiveTopology topology;
+       bool                                    useDynamicRendering;
 };
 
 template<typename Instance, typename Support = NoSupport0>
index c3dfb13..67e9340 100644 (file)
@@ -55,39 +55,56 @@ namespace Draw
 namespace
 {
 
-void createChildren (tcu::TestCaseGroup* group)
+tcu::TestCaseGroup* createTestsInternal (tcu::TestContext& testCtx, bool useDynamicRendering)
 {
-       tcu::TestContext&       testCtx         = group->getTestContext();
+       const char*             groupName[]                     { "draw",                               "draw_with_dynamic_rendering" };
+       const char*             groupDescription[]      { "Simple Draw tests",  "Simple Draw tests using VK_KHR_dynamic_rendering" };
 
-       group->addChild(new ConcurrentDrawTests                                 (testCtx));
-       group->addChild(new SimpleDrawTests                                             (testCtx));
-       group->addChild(new DrawIndexedTests                                    (testCtx));
-       group->addChild(new IndirectDrawTests                                   (testCtx));
-       group->addChild(createBasicDrawTests                                    (testCtx));
-       group->addChild(new InstancedTests                                              (testCtx));
-       group->addChild(new ShaderDrawParametersTests                   (testCtx));
-       group->addChild(createNegativeViewportHeightTests               (testCtx));
-       group->addChild(createZeroViewportHeightTests                   (testCtx));
-       group->addChild(createInvertedDepthRangesTests                  (testCtx));
-       group->addChild(createDifferingInterpolationTests               (testCtx));
-       group->addChild(createShaderLayerTests                                  (testCtx));
-       group->addChild(createShaderViewportIndexTests                  (testCtx));
-       group->addChild(createScissorTests                                              (testCtx));
-       group->addChild(createMultipleInterpolationTests                (testCtx));
-       group->addChild(createDiscardRectanglesTests                    (testCtx));
-       group->addChild(createExplicitVertexParameterTests              (testCtx));
-       group->addChild(createOutputLocationTests                       (testCtx));
-       group->addChild(createDepthClampTests                                   (testCtx));
-       group->addChild(createAhbTests                                                  (testCtx));
-       group->addChild(new MultipleClearsWithinRenderPassTests (testCtx));
-       group->addChild(createDrawMultiExtTests                                 (testCtx));
+       de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(testCtx, groupName[useDynamicRendering], groupDescription[useDynamicRendering]));
+
+       group->addChild(new ConcurrentDrawTests                                 (testCtx, useDynamicRendering));
+       group->addChild(new SimpleDrawTests                                             (testCtx, useDynamicRendering));
+       group->addChild(new DrawIndexedTests                                    (testCtx, useDynamicRendering));
+       group->addChild(new IndirectDrawTests                                   (testCtx, useDynamicRendering));
+       group->addChild(createBasicDrawTests                                    (testCtx, useDynamicRendering));
+       group->addChild(new InstancedTests                                              (testCtx, useDynamicRendering));
+       group->addChild(new ShaderDrawParametersTests                   (testCtx, useDynamicRendering));
+       group->addChild(createNegativeViewportHeightTests               (testCtx, useDynamicRendering));
+       group->addChild(createZeroViewportHeightTests                   (testCtx, useDynamicRendering));
+       group->addChild(createInvertedDepthRangesTests                  (testCtx, useDynamicRendering));
+       group->addChild(createDifferingInterpolationTests               (testCtx, useDynamicRendering));
+       group->addChild(createShaderLayerTests                                  (testCtx, useDynamicRendering));
+       group->addChild(createShaderViewportIndexTests                  (testCtx, useDynamicRendering));
+       group->addChild(createScissorTests                                              (testCtx, useDynamicRendering));
+       group->addChild(createMultipleInterpolationTests                (testCtx, useDynamicRendering));
+       group->addChild(createDiscardRectanglesTests                    (testCtx, useDynamicRendering));
+       group->addChild(createExplicitVertexParameterTests              (testCtx, useDynamicRendering));
+       group->addChild(createDepthClampTests                                   (testCtx, useDynamicRendering));
+       group->addChild(new MultipleClearsWithinRenderPassTests (testCtx, useDynamicRendering));
+       group->addChild(createDrawMultiExtTests                                 (testCtx, useDynamicRendering));
+
+       if (!useDynamicRendering)
+       {
+               // amber tests - no support for dynamic rendering
+               group->addChild(createOutputLocationTests                       (testCtx));
+
+               // subpasses can't be translated to dynamic rendering
+               group->addChild(createAhbTests                                          (testCtx));
+       }
+
+       return group.release();
 }
 
 } // anonymous
 
 tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx)
 {
-       return createTestGroup(testCtx, "draw", "Simple Draw tests", createChildren);
+       return createTestsInternal(testCtx, false);
+}
+
+tcu::TestCaseGroup* createDynamicRenderingTests (tcu::TestContext& testCtx)
+{
+       return createTestsInternal(testCtx, true);
 }
 
 } // Draw
index 29ba27c..8399d68 100644 (file)
@@ -33,7 +33,7 @@ namespace Draw
 {
 
 tcu::TestCaseGroup*            createTests (tcu::TestContext& testCtx);
-
+tcu::TestCaseGroup*            createDynamicRenderingTests (tcu::TestContext& testCtx);
 } // Draw
 } // vkt
 
index a0e9b1a..8cf2824 100644 (file)
@@ -550,6 +550,7 @@ void TestPackage::init (void)
        addChild(ssbo::createTests                                      (m_testCtx));
        addChild(QueryPool::createTests                         (m_testCtx));
        addChild(Draw::createTests                                      (m_testCtx));
+       addChild(Draw::createDynamicRenderingTests      (m_testCtx));
        addChild(compute::createTests                           (m_testCtx));
        addChild(image::createTests                                     (m_testCtx));
        addChild(wsi::createTests                                       (m_testCtx));
index 96a9d63..4117d41 100644 (file)
@@ -5,6 +5,7 @@ vk-default/compute.txt
 vk-default/conditional-rendering.txt
 vk-default/descriptor-indexing.txt
 vk-default/device-group.txt
+vk-default/draw-with-dynamic-rendering.txt
 vk-default/draw.txt
 vk-default/drm-format-modifiers.txt
 vk-default/dynamic-state.txt
diff --git a/external/vulkancts/mustpass/master/vk-default/draw-with-dynamic-rendering.txt b/external/vulkancts/mustpass/master/vk-default/draw-with-dynamic-rendering.txt
new file mode 100644 (file)
index 0000000..7af31f1
--- /dev/null
@@ -0,0 +1,1556 @@
+dEQP-VK.draw_with_dynamic_rendering.concurrent.compute_and_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_instanced_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.simple_draw.simple_draw_instanced_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_indexed_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_indexed_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_instanced_indexed_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indexed_draw.draw_instanced_indexed_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.sequential.indirect_draw_param_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.first_instance.triangle_list
+dEQP-VK.draw_with_dynamic_rendering.indirect_draw.indexed.indirect_draw_param_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.point_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.point_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_fan.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_fan.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.line_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw.triangle_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.point_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.point_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_fan.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_fan.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.line_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_list_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip_with_adjacency.1
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed.triangle_strip_with_adjacency.45
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.point_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_fan.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.line_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indirect.triangle_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.point_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_fan.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.line_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_list_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.1_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.1_multi_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.45_single_command
+dEQP-VK.draw_with_dynamic_rendering.basic_draw.draw_indexed_indirect.triangle_strip_with_adjacency.45_multi_command
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_point_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_line_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_list_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_strip_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_0_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_1_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20
+dEQP-VK.draw_with_dynamic_rendering.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_vertex.draw_indexed_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indirect_first_instance
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed_indirect
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.base_instance.draw_indexed_indirect_first_instance
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_instanced
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_indexed
+dEQP-VK.draw_with_dynamic_rendering.shader_draw_parameters.draw_index.draw_indexed_instanced
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_ccw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.negative_viewport_height.front_cw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_ccw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_none
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_front
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_back
+dEQP-VK.draw_with_dynamic_rendering.zero_viewport_height.front_cw_cull_both
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltazero
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltasmall
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltaone
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltaone_bias_clamp_neg
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_deltasmall_bias_clamp_pos
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.depthclamp_depth_range_unrestricted
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltazero
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltasmall
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltaone
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltaone_bias_clamp_neg
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_deltasmall_bias_clamp_pos
+dEQP-VK.draw_with_dynamic_rendering.inverted_depth_ranges.nodepthclamp_depth_range_unrestricted
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.flat_0
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.flat_1
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.noperspective_0
+dEQP-VK.draw_with_dynamic_rendering.differing_interpolation.noperspective_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.vertex_shader_256
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_layer.tessellation_shader_256
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.vertex_shader_16
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_implicit
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.fragment_shader_16
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_1
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_2
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_3
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_4
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_5
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_6
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_7
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_8
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_9
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_10
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_11
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_12
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_13
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_14
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_15
+dEQP-VK.draw_with_dynamic_rendering.shader_viewport_index.tessellation_shader_16
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_two_quads
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_two_clears
+dEQP-VK.draw_with_dynamic_rendering.scissor.two_static_scissors_one_quad
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_partially_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_viewport_border
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_max_int32
+dEQP-VK.draw_with_dynamic_rendering.scissor.16_static_scissors
+dEQP-VK.draw_with_dynamic_rendering.scissor.empty_static_scissor
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_two_quads
+dEQP-VK.draw_with_dynamic_rendering.scissor.empty_dynamic_scissor_first_draw
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_updates_between_draws
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_out_of_order_updates
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_partially_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_outside_viewport
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_viewport_border
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_max_int32
+dEQP-VK.draw_with_dynamic_rendering.scissor.16_dynamic_scissors
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_two_clears
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_mix
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_framebuffer_border_in
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_framebuffer_border_in
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_framebuffer_border_out
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_framebuffer_border_out
+dEQP-VK.draw_with_dynamic_rendering.scissor.static_scissor_oversized
+dEQP-VK.draw_with_dynamic_rendering.scissor.dynamic_scissor_oversized
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.1_sample
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.2_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.4_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.8_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.16_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.32_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.separate.64_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.1_sample
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.2_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.4_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.8_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.16_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.32_samples
+dEQP-VK.draw_with_dynamic_rendering.multiple_interpolation.structured.64_samples
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_inclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_1
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_2
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_3
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_4
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_8
+dEQP-VK.draw_with_dynamic_rendering.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_1
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_1
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_2
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_4
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_8
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_16
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_32
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_sample_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_sample_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.smooth_centroid_samples_64
+dEQP-VK.draw_with_dynamic_rendering.explicit_vertex_parameter.noperspective_centroid_samples_64
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.x8_d24_unorm_pack32_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_range_unrestricted_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_depth_range_unrestricted_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_clamp_four_viewports
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d16_unorm_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d24_unorm_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_negative
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_positive
+dEQP-VK.draw_with_dynamic_rendering.depth_clamp.d32_sfloat_s8_uint_clamp_four_viewports
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_unorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d32_sfloat_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangle_strip
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_triangles
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.load_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.draw_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multiple_clears_within_render_pass.clear_clear_c_r8g8b8a8_snorm_d_d16_unorm_big_triangle
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.normal.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_mixed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_random.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.no_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.one_draw.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.16_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_zero.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_4.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.10_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.10_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.mosaic.indexed_packed.max_draws.stride_extra_12.2_instances_base_3.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.normal.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_mixed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_random.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.no_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.one_draw.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.16_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_zero.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.standard_stride.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_4.1_instance.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.no_instances.vert_only.single_view.offset_6
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.no_offset
+dEQP-VK.draw_with_dynamic_rendering.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.vert_only.single_view.offset_6
index 3f4d5bd..87d59b5 100644 (file)
@@ -822,36 +822,6 @@ dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_64
 dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_64
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float
-dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2
-dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3
-dEQP-VK.draw.output_location.array.r16g16-sfloat-highp
-dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float
-dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump
-dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2
-dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3
-dEQP-VK.draw.output_location.array.r32-sfloat-highp
-dEQP-VK.draw.output_location.array.r32-sfloat-mediump
-dEQP-VK.draw.output_location.array.r8g8-uint-highp
-dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint
-dEQP-VK.draw.output_location.array.r8g8-uint-mediump
-dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint
-dEQP-VK.draw.output_location.shuffle.inputs-outputs
-dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod
 dEQP-VK.draw.depth_clamp.d16_unorm
 dEQP-VK.draw.depth_clamp.d16_unorm_clamp_input_negative
 dEQP-VK.draw.depth_clamp.d16_unorm_clamp_input_positive
@@ -888,10 +858,6 @@ dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_bias_clamp_input_positive
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_negative
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_depth_range_unrestricted_positive
 dEQP-VK.draw.depth_clamp.d32_sfloat_s8_uint_clamp_four_viewports
-dEQP-VK.draw.ahb.triangle_list
-dEQP-VK.draw.ahb.triangle_list_layers_3
-dEQP-VK.draw.ahb.triangle_list_layers_5
-dEQP-VK.draw.ahb.triangle_list_layers_8
 dEQP-VK.draw.multiple_clears_within_render_pass.load_clear_draw_c_r8g8b8a8_unorm_triangle_strip
 dEQP-VK.draw.multiple_clears_within_render_pass.draw_clear_draw_c_r8g8b8a8_unorm_triangle_strip
 dEQP-VK.draw.multiple_clears_within_render_pass.clear_clear_draw_c_r8g8b8a8_unorm_triangle_strip
@@ -6412,3 +6378,37 @@ dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_i
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.single_view.offset_6
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.multiview.no_offset
 dEQP-VK.draw.multi_draw.overlapping.indexed_packed.max_draws.stride_extra_12.1_instance.tess_geom.multiview.offset_6
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3
+dEQP-VK.draw.output_location.array.r16g16-sfloat-highp
+dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float
+dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump
+dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3
+dEQP-VK.draw.output_location.array.r32-sfloat-highp
+dEQP-VK.draw.output_location.array.r32-sfloat-mediump
+dEQP-VK.draw.output_location.array.r8g8-uint-highp
+dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint
+dEQP-VK.draw.output_location.array.r8g8-uint-mediump
+dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint
+dEQP-VK.draw.output_location.shuffle.inputs-outputs
+dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod
+dEQP-VK.draw.ahb.triangle_list
+dEQP-VK.draw.ahb.triangle_list_layers_3
+dEQP-VK.draw.ahb.triangle_list_layers_5
+dEQP-VK.draw.ahb.triangle_list_layers_8
index 0ad22af..bca8abb 100644 (file)
@@ -484,6 +484,15 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007,
 #endif
     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
+    VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = 1000044000,
+    VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = 1000044001,
+    VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = 1000044002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = 1000044003,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = 1000044004,
+    VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
+    VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
+    VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
+    VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
@@ -849,6 +858,7 @@ typedef enum VkStructureType {
     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,
+    VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
@@ -6435,6 +6445,114 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
 
 
+#define VK_KHR_dynamic_rendering 1
+#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
+#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
+
+typedef enum VkRenderingFlagBitsKHR {
+    VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 0x00000001,
+    VK_RENDERING_SUSPENDING_BIT_KHR = 0x00000002,
+    VK_RENDERING_RESUMING_BIT_KHR = 0x00000004,
+    VK_RENDERING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkRenderingFlagBitsKHR;
+typedef VkFlags VkRenderingFlagsKHR;
+typedef struct VkRenderingAttachmentInfoKHR {
+    VkStructureType          sType;
+    const void*              pNext;
+    VkImageView              imageView;
+    VkImageLayout            imageLayout;
+    VkResolveModeFlagBits    resolveMode;
+    VkImageView              resolveImageView;
+    VkImageLayout            resolveImageLayout;
+    VkAttachmentLoadOp       loadOp;
+    VkAttachmentStoreOp      storeOp;
+    VkClearValue             clearValue;
+} VkRenderingAttachmentInfoKHR;
+
+typedef struct VkRenderingInfoKHR {
+    VkStructureType                        sType;
+    const void*                            pNext;
+    VkRenderingFlagsKHR                    flags;
+    VkRect2D                               renderArea;
+    uint32_t                               layerCount;
+    uint32_t                               viewMask;
+    uint32_t                               colorAttachmentCount;
+    const VkRenderingAttachmentInfoKHR*    pColorAttachments;
+    const VkRenderingAttachmentInfoKHR*    pDepthAttachment;
+    const VkRenderingAttachmentInfoKHR*    pStencilAttachment;
+} VkRenderingInfoKHR;
+
+typedef struct VkPipelineRenderingCreateInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           viewMask;
+    uint32_t           colorAttachmentCount;
+    const VkFormat*    pColorAttachmentFormats;
+    VkFormat           depthStencilAttachmentFormat;
+} VkPipelineRenderingCreateInfoKHR;
+
+typedef struct VkPhysicalDeviceDynamicRenderingFeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           dynamicRendering;
+} VkPhysicalDeviceDynamicRenderingFeaturesKHR;
+
+typedef struct VkCommandBufferInheritanceRenderingInfoKHR {
+    VkStructureType          sType;
+    const void*              pNext;
+    VkRenderingFlagsKHR      flags;
+    uint32_t                 viewMask;
+    uint32_t                 colorAttachmentCount;
+    const VkFormat*          pColorAttachmentFormats;
+    VkFormat                 depthStencilAttachmentFormat;
+    VkSampleCountFlagBits    rasterizationSamples;
+} VkCommandBufferInheritanceRenderingInfoKHR;
+
+typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkImageView        imageView;
+    VkImageLayout      imageLayout;
+    VkExtent2D         shadingRateAttachmentTexelSize;
+} VkRenderingFragmentShadingRateAttachmentInfoKHR;
+
+typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkImageView        imageView;
+    VkImageLayout      imageLayout;
+} VkRenderingFragmentDensityMapAttachmentInfoEXT;
+
+typedef struct VkAttachmentSampleCountInfoAMD {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    uint32_t                        colorAttachmentCount;
+    const VkSampleCountFlagBits*    pColorAttachmentSamples;
+    VkSampleCountFlagBits           depthStencilAttachmentSamples;
+} VkAttachmentSampleCountInfoAMD;
+
+typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
+
+typedef struct VkMultiviewPerViewAttributesInfoNVX {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkBool32           perViewAttributes;
+    VkBool32           perViewAttributesPositionXOnly;
+} VkMultiviewPerViewAttributesInfoNVX;
+
+typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkRenderingInfoKHR*                   pRenderingInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
+    VkCommandBuffer                             commandBuffer);
+#endif
+
+
 #define VK_KHR_multiview 1
 #define VK_KHR_MULTIVIEW_SPEC_VERSION     1
 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"