summaryrefslogtreecommitdiff
path: root/tools/gfx/vulkan/vk-device.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-02-02 22:04:40 -0800
committerGitHub <noreply@github.com>2024-02-02 22:04:40 -0800
commitc15e7ade4e27e1649d5b98f5854e9e52bb9e60ae (patch)
tree22082fda85b2b25eec36da8c4505de7b6cb987fc /tools/gfx/vulkan/vk-device.cpp
parenta67cb0609587c230746b52567ff5775cab215220 (diff)
Atomics+Wave ops intrinsics fixes. (#3542)
* Fix atomics intrinsics, increase kMaxDescriptorSets. * Add SPIRVASM to known non-differentiable insts. * Support fp16 wave ops when targeting glsl. * Fixes. * Fix vk validation errors. * Fix. * Add to allowed failures.
Diffstat (limited to 'tools/gfx/vulkan/vk-device.cpp')
-rw-r--r--tools/gfx/vulkan/vk-device.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/gfx/vulkan/vk-device.cpp b/tools/gfx/vulkan/vk-device.cpp
index 55c1a88ec..4f2899f1b 100644
--- a/tools/gfx/vulkan/vk-device.cpp
+++ b/tools/gfx/vulkan/vk-device.cpp
@@ -487,6 +487,14 @@ Result DeviceImpl::initVulkanInstanceAndDevice(
extendedFeatures.meshShaderFeatures.pNext = deviceFeatures2.pNext;
deviceFeatures2.pNext = &extendedFeatures.meshShaderFeatures;
+ // multiview features
+ extendedFeatures.multiviewFeatures.pNext = deviceFeatures2.pNext;
+ deviceFeatures2.pNext = &extendedFeatures.multiviewFeatures;
+
+ // fragment shading rate features
+ extendedFeatures.fragmentShadingRateFeatures.pNext = deviceFeatures2.pNext;
+ deviceFeatures2.pNext = &extendedFeatures.fragmentShadingRateFeatures;
+
if (VK_MAKE_VERSION(majorVersion, minorVersion, 0) >= VK_API_VERSION_1_2)
{
extendedFeatures.vulkan12Features.pNext = deviceFeatures2.pNext;
@@ -625,6 +633,20 @@ Result DeviceImpl::initVulkanInstanceAndDevice(
);
SIMPLE_EXTENSION_FEATURE(
+ extendedFeatures.multiviewFeatures,
+ multiview,
+ VK_KHR_MULTIVIEW_EXTENSION_NAME,
+ "multiview"
+ );
+
+ SIMPLE_EXTENSION_FEATURE(
+ extendedFeatures.fragmentShadingRateFeatures,
+ primitiveFragmentShadingRate,
+ VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME,
+ "fragment-shading-rate"
+ );
+
+ SIMPLE_EXTENSION_FEATURE(
extendedFeatures.rayTracingInvocationReorderFeatures,
rayTracingInvocationReorder,
VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME,
@@ -659,10 +681,12 @@ Result DeviceImpl::initVulkanInstanceAndDevice(
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR };
VkPhysicalDeviceSubgroupProperties subgroupProps = {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES };
+
rtProps.pNext = extendedProps.pNext;
extendedProps.pNext = &rtProps;
subgroupProps.pNext = extendedProps.pNext;
extendedProps.pNext = &subgroupProps;
+
m_api.vkGetPhysicalDeviceProperties2(m_api.m_physicalDevice, &extendedProps);
m_api.m_rtProperties = rtProps;