diff --git a/src/dxbc/dxbc_options.cpp b/src/dxbc/dxbc_options.cpp index 154d25079..1bf7e4639 100644 --- a/src/dxbc/dxbc_options.cpp +++ b/src/dxbc/dxbc_options.cpp @@ -49,20 +49,20 @@ namespace dxvk { // Figure out float control flags to match D3D11 rules if (options.floatControls) { - if (devInfo.khrShaderFloatControls.shaderSignedZeroInfNanPreserveFloat32) + if (devInfo.vk12.shaderSignedZeroInfNanPreserveFloat32) floatControl.set(DxbcFloatControlFlag::PreserveNan32); - if (devInfo.khrShaderFloatControls.shaderSignedZeroInfNanPreserveFloat64) + if (devInfo.vk12.shaderSignedZeroInfNanPreserveFloat64) floatControl.set(DxbcFloatControlFlag::PreserveNan64); - if (devInfo.khrShaderFloatControls.denormBehaviorIndependence != VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE) { - if (devInfo.khrShaderFloatControls.shaderDenormFlushToZeroFloat32) + if (devInfo.vk12.denormBehaviorIndependence != VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE) { + if (devInfo.vk12.shaderDenormFlushToZeroFloat32) floatControl.set(DxbcFloatControlFlag::DenormFlushToZero32); - if (devInfo.khrShaderFloatControls.shaderDenormPreserveFloat64) + if (devInfo.vk12.shaderDenormPreserveFloat64) floatControl.set(DxbcFloatControlFlag::DenormPreserve64); } } - if (!devInfo.khrShaderFloatControls.shaderSignedZeroInfNanPreserveFloat32 + if (!devInfo.vk12.shaderSignedZeroInfNanPreserveFloat32 || adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_MESA_RADV_KHR, 0, VK_MAKE_VERSION(20, 3, 0))) enableRtOutputNanFixup = true; } diff --git a/src/dxvk/dxvk_adapter.cpp b/src/dxvk/dxvk_adapter.cpp index db9e70491..c9027f18b 100644 --- a/src/dxvk/dxvk_adapter.cpp +++ b/src/dxvk/dxvk_adapter.cpp @@ -283,7 +283,7 @@ namespace dxvk { DxvkDeviceFeatures enabledFeatures) { DxvkDeviceExtensions devExtensions; - std::array devExtensionList = {{ + std::array devExtensionList = {{ &devExtensions.amdMemoryOverallocationBehaviour, &devExtensions.amdShaderFragmentMask, &devExtensions.ext4444Formats, @@ -307,7 +307,6 @@ namespace dxvk { &devExtensions.khrDynamicRendering, &devExtensions.khrExternalMemoryWin32, &devExtensions.khrPipelineLibrary, - &devExtensions.khrShaderFloatControls, &devExtensions.khrSwapchain, &devExtensions.nvxBinaryImport, &devExtensions.nvxImageViewHandle, @@ -665,11 +664,6 @@ namespace dxvk { m_deviceInfo.khrDeviceDriverProperties.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.khrDeviceDriverProperties); } - if (m_deviceExtensions.supports(VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME)) { - m_deviceInfo.khrShaderFloatControls.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR; - m_deviceInfo.khrShaderFloatControls.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.khrShaderFloatControls); - } - // Query full device properties for all enabled extensions m_vki->vkGetPhysicalDeviceProperties2(m_handle, &m_deviceInfo.core); diff --git a/src/dxvk/dxvk_device_info.h b/src/dxvk/dxvk_device_info.h index 611d94a8b..fad5ed454 100644 --- a/src/dxvk/dxvk_device_info.h +++ b/src/dxvk/dxvk_device_info.h @@ -23,7 +23,6 @@ namespace dxvk { VkPhysicalDeviceTransformFeedbackPropertiesEXT extTransformFeedback; VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT extVertexAttributeDivisor; VkPhysicalDeviceDriverPropertiesKHR khrDeviceDriverProperties; - VkPhysicalDeviceFloatControlsPropertiesKHR khrShaderFloatControls; }; diff --git a/src/dxvk/dxvk_extensions.h b/src/dxvk/dxvk_extensions.h index 092c211a8..cc90e9b78 100644 --- a/src/dxvk/dxvk_extensions.h +++ b/src/dxvk/dxvk_extensions.h @@ -299,7 +299,6 @@ namespace dxvk { DxvkExt khrDynamicRendering = { VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, DxvkExtMode::Required }; DxvkExt khrExternalMemoryWin32 = { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrPipelineLibrary = { VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME, DxvkExtMode::Optional }; - DxvkExt khrShaderFloatControls = { VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required }; DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Disabled }; DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Disabled };