diff options
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 79d4f8cfd..dd3681537 100644 --- a/tools/gfx/vulkan/vk-api.h +++ b/tools/gfx/vulkan/vk-api.h @@ -287,6 +287,10 @@ struct VulkanExtendedFeatureProperties VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR }; + VkPhysicalDeviceComputeShaderDerivativesFeaturesNV computeShaderDerivativeFeatures = { + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV + }; + // 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 ad0924294..3583e2a1f 100644 --- a/tools/gfx/vulkan/vk-device.cpp +++ b/tools/gfx/vulkan/vk-device.cpp @@ -464,6 +464,10 @@ Result DeviceImpl::initVulkanInstanceAndDevice( extendedFeatures.variablePointersFeatures.pNext = deviceFeatures2.pNext; deviceFeatures2.pNext = &extendedFeatures.variablePointersFeatures; + // Compute shader derivative features. + extendedFeatures.computeShaderDerivativeFeatures.pNext = deviceFeatures2.pNext; + deviceFeatures2.pNext = &extendedFeatures.computeShaderDerivativeFeatures; + // Extended dynamic states extendedFeatures.extendedDynamicStateFeatures.pNext = deviceFeatures2.pNext; deviceFeatures2.pNext = &extendedFeatures.extendedDynamicStateFeatures; @@ -696,6 +700,13 @@ Result DeviceImpl::initVulkanInstanceAndDevice( VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, "variable-pointer" ); + + SIMPLE_EXTENSION_FEATURE( + extendedFeatures.computeShaderDerivativeFeatures, + computeDerivativeGroupLinear, + VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, + "computeDerivativeGroupLinear" + ); #undef SIMPLE_EXTENSION_FEATURE |
