From 30b82abc37fd512efb12632da21bed3654d594a8 Mon Sep 17 00:00:00 2001 From: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com> Date: Sun, 28 Apr 2024 22:34:02 -0400 Subject: Add variable pointers to render-test-vk and a related failing test-case (#4041) * add variable pointers to render-test-vk and failing (but ignored with workarounds) test-case --- tools/gfx/vulkan/vk-api.h | 4 ++++ tools/gfx/vulkan/vk-device.cpp | 11 +++++++++++ 2 files changed, 15 insertions(+) (limited to 'tools/gfx') diff --git a/tools/gfx/vulkan/vk-api.h b/tools/gfx/vulkan/vk-api.h index cceac20e1..04d9d066f 100644 --- a/tools/gfx/vulkan/vk-api.h +++ b/tools/gfx/vulkan/vk-api.h @@ -283,6 +283,10 @@ struct VulkanExtendedFeatureProperties VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV }; + VkPhysicalDeviceVariablePointerFeaturesKHR variablePointersFeatures = { + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR + }; + // Clock features VkPhysicalDeviceShaderClockFeaturesKHR clockFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR diff --git a/tools/gfx/vulkan/vk-device.cpp b/tools/gfx/vulkan/vk-device.cpp index dd8a674cb..aac7631cb 100644 --- a/tools/gfx/vulkan/vk-device.cpp +++ b/tools/gfx/vulkan/vk-device.cpp @@ -460,6 +460,10 @@ Result DeviceImpl::initVulkanInstanceAndDevice( extendedFeatures.accelerationStructureFeatures.pNext = deviceFeatures2.pNext; deviceFeatures2.pNext = &extendedFeatures.accelerationStructureFeatures; + // Variable pointer features. + extendedFeatures.variablePointersFeatures.pNext = deviceFeatures2.pNext; + deviceFeatures2.pNext = &extendedFeatures.variablePointersFeatures; + // Extended dynamic states extendedFeatures.extendedDynamicStateFeatures.pNext = deviceFeatures2.pNext; deviceFeatures2.pNext = &extendedFeatures.extendedDynamicStateFeatures; @@ -675,6 +679,13 @@ Result DeviceImpl::initVulkanInstanceAndDevice( "shader-execution-reorder" ); + SIMPLE_EXTENSION_FEATURE( + extendedFeatures.variablePointersFeatures, + variablePointers, + VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, + "variable-pointer" + ); + #undef SIMPLE_EXTENSION_FEATURE if (extendedFeatures.vulkan12Features.shaderBufferInt64Atomics) -- cgit v1.2.3