diff options
| author | Yong He <yonghe@outlook.com> | 2024-06-01 19:26:14 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-01 19:26:14 -0700 |
| commit | c5a453e56985022deb820cbbb2ff5cd6a8347e34 (patch) | |
| tree | 019c81e8bfcc099f2ff17c1a58f625cf6a527d47 /tools | |
| parent | 5799281bda2f9a174b825de4058c5e8c9aa5b27f (diff) | |
Support different SPIRV versions. (#4254)
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/gfx/vulkan/vk-api.h | 4 | ||||
| -rw-r--r-- | tools/gfx/vulkan/vk-device.cpp | 11 |
2 files changed, 15 insertions, 0 deletions
diff --git a/tools/gfx/vulkan/vk-api.h b/tools/gfx/vulkan/vk-api.h index 04d9d066f..79d4f8cfd 100644 --- a/tools/gfx/vulkan/vk-api.h +++ b/tools/gfx/vulkan/vk-api.h @@ -311,6 +311,10 @@ struct VulkanExtendedFeatureProperties VkPhysicalDeviceVulkan12Features vulkan12Features = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES }; + + VkPhysicalDeviceComputeShaderDerivativesFeaturesNV computeShaderDerivativesFeatures = { + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV + }; }; struct VulkanApi diff --git a/tools/gfx/vulkan/vk-device.cpp b/tools/gfx/vulkan/vk-device.cpp index 8ad941ead..ad0924294 100644 --- a/tools/gfx/vulkan/vk-device.cpp +++ b/tools/gfx/vulkan/vk-device.cpp @@ -508,6 +508,10 @@ Result DeviceImpl::initVulkanInstanceAndDevice( extendedFeatures.fragmentShadingRateFeatures.pNext = deviceFeatures2.pNext; deviceFeatures2.pNext = &extendedFeatures.fragmentShadingRateFeatures; + // Compute Quad Derivative features + extendedFeatures.computeShaderDerivativesFeatures.pNext = deviceFeatures2.pNext; + deviceFeatures2.pNext = &extendedFeatures.computeShaderDerivativesFeatures; + if (VK_MAKE_VERSION(majorVersion, minorVersion, 0) >= VK_API_VERSION_1_2) { extendedFeatures.vulkan12Features.pNext = deviceFeatures2.pNext; @@ -602,6 +606,13 @@ Result DeviceImpl::initVulkanInstanceAndDevice( "extended-dynamic-states" ); + SIMPLE_EXTENSION_FEATURE( + extendedFeatures.computeShaderDerivativesFeatures, + computeDerivativeGroupQuads, + VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, + "compute-shader-derivative" + ); + if (extendedFeatures.accelerationStructureFeatures.accelerationStructure && extensionNames.contains(VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME) && extensionNames.contains(VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME)) |
