1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-15 07:29:17 +01:00

[dxvk] Replace VK_KHR_shader_float_controls with core feature

This commit is contained in:
Philip Rebohle 2022-07-14 20:18:05 +02:00
parent 000e3cb960
commit 78c5ef88bc
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
4 changed files with 7 additions and 15 deletions

View File

@ -49,20 +49,20 @@ namespace dxvk {
// Figure out float control flags to match D3D11 rules // Figure out float control flags to match D3D11 rules
if (options.floatControls) { if (options.floatControls) {
if (devInfo.khrShaderFloatControls.shaderSignedZeroInfNanPreserveFloat32) if (devInfo.vk12.shaderSignedZeroInfNanPreserveFloat32)
floatControl.set(DxbcFloatControlFlag::PreserveNan32); floatControl.set(DxbcFloatControlFlag::PreserveNan32);
if (devInfo.khrShaderFloatControls.shaderSignedZeroInfNanPreserveFloat64) if (devInfo.vk12.shaderSignedZeroInfNanPreserveFloat64)
floatControl.set(DxbcFloatControlFlag::PreserveNan64); floatControl.set(DxbcFloatControlFlag::PreserveNan64);
if (devInfo.khrShaderFloatControls.denormBehaviorIndependence != VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE) { if (devInfo.vk12.denormBehaviorIndependence != VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE) {
if (devInfo.khrShaderFloatControls.shaderDenormFlushToZeroFloat32) if (devInfo.vk12.shaderDenormFlushToZeroFloat32)
floatControl.set(DxbcFloatControlFlag::DenormFlushToZero32); floatControl.set(DxbcFloatControlFlag::DenormFlushToZero32);
if (devInfo.khrShaderFloatControls.shaderDenormPreserveFloat64) if (devInfo.vk12.shaderDenormPreserveFloat64)
floatControl.set(DxbcFloatControlFlag::DenormPreserve64); 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))) || adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_MESA_RADV_KHR, 0, VK_MAKE_VERSION(20, 3, 0)))
enableRtOutputNanFixup = true; enableRtOutputNanFixup = true;
} }

View File

@ -283,7 +283,7 @@ namespace dxvk {
DxvkDeviceFeatures enabledFeatures) { DxvkDeviceFeatures enabledFeatures) {
DxvkDeviceExtensions devExtensions; DxvkDeviceExtensions devExtensions;
std::array<DxvkExt*, 27> devExtensionList = {{ std::array<DxvkExt*, 26> devExtensionList = {{
&devExtensions.amdMemoryOverallocationBehaviour, &devExtensions.amdMemoryOverallocationBehaviour,
&devExtensions.amdShaderFragmentMask, &devExtensions.amdShaderFragmentMask,
&devExtensions.ext4444Formats, &devExtensions.ext4444Formats,
@ -307,7 +307,6 @@ namespace dxvk {
&devExtensions.khrDynamicRendering, &devExtensions.khrDynamicRendering,
&devExtensions.khrExternalMemoryWin32, &devExtensions.khrExternalMemoryWin32,
&devExtensions.khrPipelineLibrary, &devExtensions.khrPipelineLibrary,
&devExtensions.khrShaderFloatControls,
&devExtensions.khrSwapchain, &devExtensions.khrSwapchain,
&devExtensions.nvxBinaryImport, &devExtensions.nvxBinaryImport,
&devExtensions.nvxImageViewHandle, &devExtensions.nvxImageViewHandle,
@ -665,11 +664,6 @@ namespace dxvk {
m_deviceInfo.khrDeviceDriverProperties.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.khrDeviceDriverProperties); 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 // Query full device properties for all enabled extensions
m_vki->vkGetPhysicalDeviceProperties2(m_handle, &m_deviceInfo.core); m_vki->vkGetPhysicalDeviceProperties2(m_handle, &m_deviceInfo.core);

View File

@ -23,7 +23,6 @@ namespace dxvk {
VkPhysicalDeviceTransformFeedbackPropertiesEXT extTransformFeedback; VkPhysicalDeviceTransformFeedbackPropertiesEXT extTransformFeedback;
VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT extVertexAttributeDivisor; VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT extVertexAttributeDivisor;
VkPhysicalDeviceDriverPropertiesKHR khrDeviceDriverProperties; VkPhysicalDeviceDriverPropertiesKHR khrDeviceDriverProperties;
VkPhysicalDeviceFloatControlsPropertiesKHR khrShaderFloatControls;
}; };

View File

@ -299,7 +299,6 @@ namespace dxvk {
DxvkExt khrDynamicRendering = { VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, DxvkExtMode::Required }; DxvkExt khrDynamicRendering = { VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, DxvkExtMode::Required };
DxvkExt khrExternalMemoryWin32 = { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, DxvkExtMode::Optional }; DxvkExt khrExternalMemoryWin32 = { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, DxvkExtMode::Optional };
DxvkExt khrPipelineLibrary = { VK_KHR_PIPELINE_LIBRARY_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 khrSwapchain = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, DxvkExtMode::Required };
DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Disabled }; DxvkExt nvxBinaryImport = { VK_NVX_BINARY_IMPORT_EXTENSION_NAME, DxvkExtMode::Disabled };
DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Disabled }; DxvkExt nvxImageViewHandle = { VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME, DxvkExtMode::Disabled };