From: Alexander Galazin Date: Wed, 4 Sep 2019 07:46:37 +0000 (+0200) Subject: Update support checks for descriptorIndexing/drawIndirectCount X-Git-Tag: upstream/1.3.5~1527^2^2~92 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=544e30d0a55a81448dda8ae9777c8593daaa0ad1;p=platform%2Fupstream%2FVK-GL-CTS.git Update support checks for descriptorIndexing/drawIndirectCount Use core feature struct for checks in Vulkan 1.2 context and extension feature struct for previous API versions. Affects: dEQP-VK.descriptor_indexing.* dEQP-VK.binding_model.descriptorset_random* dEQP-VK.draw.indirect_draw.* Components: Vulkan Change-Id: I07ca69a5d0e7c38523c2f06e8769fa38228e0b38 --- diff --git a/external/vulkancts/framework/vulkan/vkSupportedExtensions.inl b/external/vulkancts/framework/vulkan/vkSupportedExtensions.inl index e775152..0b50966 100644 --- a/external/vulkancts/framework/vulkan/vkSupportedExtensions.inl +++ b/external/vulkancts/framework/vulkan/vkSupportedExtensions.inl @@ -25,6 +25,7 @@ void getCoreDeviceExtensionsImpl (deUint32 coreVersion, ::std::vector::iterate (void) void checkIndirectCountExt (Context& context) { - context.requireDeviceExtension("VK_KHR_draw_indirect_count"); + if (context.contextSupports(vk::ApiVersion(1, 2, 0)) && !context.getVulkan12Features().drawIndirectCount) + TCU_THROW(NotSupportedError, "drawIndirectCount is not supported"); + else + context.requireDeviceExtension("VK_KHR_draw_indirect_count"); } } // anonymous diff --git a/external/vulkancts/modules/vulkan/vktTestCase.cpp b/external/vulkancts/modules/vulkan/vktTestCase.cpp index 3a5a2b7..eef165f 100644 --- a/external/vulkancts/modules/vulkan/vktTestCase.cpp +++ b/external/vulkancts/modules/vulkan/vktTestCase.cpp @@ -594,6 +594,13 @@ bool Context::isBufferDeviceAddressWithCaptureReplaySupported(void) const return (isBufferDeviceAddressKHRSupported() && getBufferDeviceAddressFeatures().bufferDeviceAddressCaptureReplay) || (isBufferDeviceAddressEXTSupported() && getBufferDeviceAddressFeaturesEXT().bufferDeviceAddressCaptureReplay); } +bool Context::isDescriptorIndexingSupported(void) const +{ + if (contextSupports(vk::ApiVersion(1, 2, 0))) + return getVulkan12Features().descriptorIndexing; + else + return isDeviceExtensionSupported(getUsedApiVersion(), getDeviceExtensions(), "VK_EXT_descriptor_indexing"); +} // TestCase void TestCase::initPrograms (SourceCollections&) const diff --git a/external/vulkancts/modules/vulkan/vktTestCase.hpp b/external/vulkancts/modules/vulkan/vktTestCase.hpp index e3a51d9..37e532d 100644 --- a/external/vulkancts/modules/vulkan/vktTestCase.hpp +++ b/external/vulkancts/modules/vulkan/vktTestCase.hpp @@ -101,6 +101,7 @@ public: bool isBufferDeviceAddressKHRSupported (void) const; bool isBufferDeviceAddressEXTSupported (void) const; bool isBufferDeviceAddressWithCaptureReplaySupported (void) const; + bool isDescriptorIndexingSupported (void) const; protected: tcu::TestContext& m_testCtx; diff --git a/external/vulkancts/scripts/src/extensions_data.txt b/external/vulkancts/scripts/src/extensions_data.txt index 2b9933b..85f30e9 100644 --- a/external/vulkancts/scripts/src/extensions_data.txt +++ b/external/vulkancts/scripts/src/extensions_data.txt @@ -69,8 +69,7 @@ VK_KHR_imageless_framebuffer DEVICE 1_2_0 VK_KHR_shader_subgroup_extended_types DEVICE 1_2_0 VK_EXT_sampler_filter_minmax DEVICE 1_2_0 VK_EXT_shader_viewport_index_layer DEVICE 1_2_0 -// VK_EXT_descriptor_indexing is an exception to promoted extension since its functionality is guarded by an addional option in Vulkan 1.2 -VK_EXT_descriptor_indexing DEVICE +VK_EXT_descriptor_indexing DEVICE 1_2_0 VK_EXT_scalar_block_layout DEVICE 1_2_0 VK_KHR_buffer_device_address DEVICE 1_2_0 VK_EXT_host_query_reset DEVICE 1_2_0