Add checking drawIndirectCount in conditional rendering tests.
Affects:
dEQP-VK.conditional_rendering.*_indirect_count
Components: Vulkan
VK-GL-CTS issue: 4012
Change-Id: Iad77cebba4a84833f7733a2f8041285623a000bc
diff --git a/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawTests.cpp b/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawTests.cpp
index e84d114..81cdef5 100644
--- a/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawTests.cpp
+++ b/external/vulkancts/modules/vulkan/conditional_rendering/vktConditionalDrawTests.cpp
@@ -110,6 +110,12 @@
de::SharedPtr<Draw::Buffer> m_indirectCountBuffer;
};
+void checkSupport(Context& context, DrawCommandType command)
+{
+ if (command == DRAW_COMMAND_TYPE_DRAW_INDIRECT_COUNT || command == DRAW_COMMAND_TYPE_DRAW_INDEXED_INDIRECT_COUNT)
+ context.requireDeviceFunctionality("VK_KHR_draw_indirect_count");
+}
+
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)
, m_command(testSpec.command)
@@ -117,6 +123,7 @@
, m_conditionalData(testSpec.conditionalData)
{
checkConditionalRenderingCapabilities(context, m_conditionalData);
+ checkSupport(context, m_command);
const float minX = -0.3f;
const float maxX = 0.3f;