Fix checkSupport for pipeline bind point tests
Ray tracing tests are unconditionally skipped if VK_KHR_push_descriptor
or VK_KHR_descriptor_update_template is not supported by the
implementation, as the support check logic is mistakenly checking only
the graphics and compute pipeline usages. Fix the support checks by
first checking which pipelines are used in the test.
Affects:
dEQP-VK.pipeline.monolithic.bind_point.*
Components: Vulkan
VK-GL-CTS issue: 3820
Change-Id: Ic6f0b78ca2d4d5415db03ca1186100494201548f
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBindPointTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBindPointTests.cpp
index ae95208..152934e 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBindPointTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBindPointTests.cpp
@@ -180,12 +180,18 @@
void BindPointTest::checkSupport (Context& context) const
{
- if (m_params.graphicsSetUpdateType != SetUpdateType::WRITE || m_params.computeSetUpdateType != SetUpdateType::WRITE)
+ if ((m_params.hasGraphics() && m_params.graphicsSetUpdateType != SetUpdateType::WRITE) ||
+ (m_params.hasCompute() && m_params.computeSetUpdateType != SetUpdateType::WRITE) ||
+ (m_params.hasRayTracing() && m_params.rayTracingSetUpdateType != SetUpdateType::WRITE))
{
context.requireDeviceFunctionality("VK_KHR_push_descriptor");
- if (m_params.graphicsSetUpdateType == SetUpdateType::PUSH_WITH_TEMPLATE || m_params.computeSetUpdateType == SetUpdateType::PUSH_WITH_TEMPLATE)
+ if ((m_params.hasGraphics() && m_params.graphicsSetUpdateType == SetUpdateType::PUSH_WITH_TEMPLATE) ||
+ (m_params.hasCompute() && m_params.computeSetUpdateType == SetUpdateType::PUSH_WITH_TEMPLATE) ||
+ (m_params.hasRayTracing() && m_params.rayTracingSetUpdateType == SetUpdateType::PUSH_WITH_TEMPLATE))
+ {
context.requireDeviceFunctionality("VK_KHR_descriptor_update_template");
+ }
}
if (m_params.hasRayTracing())