From c15e7ade4e27e1649d5b98f5854e9e52bb9e60ae Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 2 Feb 2024 22:04:40 -0800 Subject: 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. --- tools/gfx/vulkan/vk-device.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'tools/gfx/vulkan/vk-device.cpp') 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; @@ -624,6 +632,20 @@ Result DeviceImpl::initVulkanInstanceAndDevice( "mesh-shader" ); + 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, @@ -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; -- cgit v1.2.3