mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-05 01:24:14 +01:00
[dxvk] Enable EXT_depth_bias_control
This commit is contained in:
parent
77f6f2a84b
commit
5fbb0dd4ba
@ -244,6 +244,10 @@ namespace dxvk {
|
|||||||
&& CHECK_FEATURE_NEED(extCustomBorderColor.customBorderColors)
|
&& CHECK_FEATURE_NEED(extCustomBorderColor.customBorderColors)
|
||||||
&& CHECK_FEATURE_NEED(extCustomBorderColor.customBorderColorWithoutFormat)
|
&& CHECK_FEATURE_NEED(extCustomBorderColor.customBorderColorWithoutFormat)
|
||||||
&& CHECK_FEATURE_NEED(extDepthClipEnable.depthClipEnable)
|
&& CHECK_FEATURE_NEED(extDepthClipEnable.depthClipEnable)
|
||||||
|
&& CHECK_FEATURE_NEED(extDepthBiasControl.depthBiasControl)
|
||||||
|
&& CHECK_FEATURE_NEED(extDepthBiasControl.leastRepresentableValueForceUnormRepresentation)
|
||||||
|
&& CHECK_FEATURE_NEED(extDepthBiasControl.floatRepresentation)
|
||||||
|
&& CHECK_FEATURE_NEED(extDepthBiasControl.depthBiasExact)
|
||||||
&& CHECK_FEATURE_NEED(extGraphicsPipelineLibrary.graphicsPipelineLibrary)
|
&& CHECK_FEATURE_NEED(extGraphicsPipelineLibrary.graphicsPipelineLibrary)
|
||||||
&& CHECK_FEATURE_NEED(extMemoryBudget)
|
&& CHECK_FEATURE_NEED(extMemoryBudget)
|
||||||
&& CHECK_FEATURE_NEED(extMemoryPriority.memoryPriority)
|
&& CHECK_FEATURE_NEED(extMemoryPriority.memoryPriority)
|
||||||
@ -513,6 +517,10 @@ namespace dxvk {
|
|||||||
enabledFeatures.extDepthClipEnable = *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(f);
|
enabledFeatures.extDepthClipEnable = *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(f);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT:
|
||||||
|
enabledFeatures.extDepthBiasControl = *reinterpret_cast<const VkPhysicalDeviceDepthBiasControlFeaturesEXT*>(f);
|
||||||
|
break;
|
||||||
|
|
||||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT:
|
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT:
|
||||||
enabledFeatures.extExtendedDynamicState3 = *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT*>(f);
|
enabledFeatures.extExtendedDynamicState3 = *reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT*>(f);
|
||||||
break;
|
break;
|
||||||
@ -768,6 +776,11 @@ namespace dxvk {
|
|||||||
m_deviceFeatures.extDepthClipEnable.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extDepthClipEnable);
|
m_deviceFeatures.extDepthClipEnable.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extDepthClipEnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_deviceExtensions.supports(VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME)) {
|
||||||
|
m_deviceFeatures.extDepthBiasControl.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT;
|
||||||
|
m_deviceFeatures.extDepthBiasControl.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extDepthBiasControl);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME)) {
|
if (m_deviceExtensions.supports(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME)) {
|
||||||
m_deviceFeatures.extExtendedDynamicState3.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT;
|
m_deviceFeatures.extExtendedDynamicState3.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT;
|
||||||
m_deviceFeatures.extExtendedDynamicState3.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extExtendedDynamicState3);
|
m_deviceFeatures.extExtendedDynamicState3.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extExtendedDynamicState3);
|
||||||
@ -881,6 +894,7 @@ namespace dxvk {
|
|||||||
&devExtensions.extConservativeRasterization,
|
&devExtensions.extConservativeRasterization,
|
||||||
&devExtensions.extCustomBorderColor,
|
&devExtensions.extCustomBorderColor,
|
||||||
&devExtensions.extDepthClipEnable,
|
&devExtensions.extDepthClipEnable,
|
||||||
|
&devExtensions.extDepthBiasControl,
|
||||||
&devExtensions.extExtendedDynamicState3,
|
&devExtensions.extExtendedDynamicState3,
|
||||||
&devExtensions.extFragmentShaderInterlock,
|
&devExtensions.extFragmentShaderInterlock,
|
||||||
&devExtensions.extFullScreenExclusive,
|
&devExtensions.extFullScreenExclusive,
|
||||||
@ -943,6 +957,11 @@ namespace dxvk {
|
|||||||
enabledFeatures.extDepthClipEnable.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extDepthClipEnable);
|
enabledFeatures.extDepthClipEnable.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extDepthClipEnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (devExtensions.extDepthBiasControl) {
|
||||||
|
enabledFeatures.extDepthBiasControl.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT;
|
||||||
|
enabledFeatures.extDepthBiasControl.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extDepthBiasControl);
|
||||||
|
}
|
||||||
|
|
||||||
if (devExtensions.extExtendedDynamicState3) {
|
if (devExtensions.extExtendedDynamicState3) {
|
||||||
enabledFeatures.extExtendedDynamicState3.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT;
|
enabledFeatures.extExtendedDynamicState3.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT;
|
||||||
enabledFeatures.extExtendedDynamicState3.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extExtendedDynamicState3);
|
enabledFeatures.extExtendedDynamicState3.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extExtendedDynamicState3);
|
||||||
@ -1099,6 +1118,11 @@ namespace dxvk {
|
|||||||
"\n customBorderColorWithoutFormat : ", features.extCustomBorderColor.customBorderColorWithoutFormat ? "1" : "0",
|
"\n customBorderColorWithoutFormat : ", features.extCustomBorderColor.customBorderColorWithoutFormat ? "1" : "0",
|
||||||
"\n", VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME,
|
"\n", VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME,
|
||||||
"\n depthClipEnable : ", features.extDepthClipEnable.depthClipEnable ? "1" : "0",
|
"\n depthClipEnable : ", features.extDepthClipEnable.depthClipEnable ? "1" : "0",
|
||||||
|
"\n", VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME,
|
||||||
|
"\n depthBiasControl : ", features.extDepthBiasControl.depthBiasControl ? "1" : "0",
|
||||||
|
"\n leastRepresentableValueForceUnormRepresentation : ", features.extDepthBiasControl.leastRepresentableValueForceUnormRepresentation ? "1" : "0",
|
||||||
|
"\n floatRepresentation : ", features.extDepthBiasControl.floatRepresentation ? "1" : "0",
|
||||||
|
"\n depthBiasExact : ", features.extDepthBiasControl.depthBiasExact ? "1" : "0",
|
||||||
"\n", VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME,
|
"\n", VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME,
|
||||||
"\n extDynamicState3AlphaToCoverageEnable : ", features.extExtendedDynamicState3.extendedDynamicState3AlphaToCoverageEnable ? "1" : "0",
|
"\n extDynamicState3AlphaToCoverageEnable : ", features.extExtendedDynamicState3.extendedDynamicState3AlphaToCoverageEnable ? "1" : "0",
|
||||||
"\n extDynamicState3DepthClipEnable : ", features.extExtendedDynamicState3.extendedDynamicState3DepthClipEnable ? "1" : "0",
|
"\n extDynamicState3DepthClipEnable : ", features.extExtendedDynamicState3.extendedDynamicState3DepthClipEnable ? "1" : "0",
|
||||||
|
@ -44,6 +44,7 @@ namespace dxvk {
|
|||||||
VkBool32 extConservativeRasterization;
|
VkBool32 extConservativeRasterization;
|
||||||
VkPhysicalDeviceCustomBorderColorFeaturesEXT extCustomBorderColor;
|
VkPhysicalDeviceCustomBorderColorFeaturesEXT extCustomBorderColor;
|
||||||
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
||||||
|
VkPhysicalDeviceDepthBiasControlFeaturesEXT extDepthBiasControl;
|
||||||
VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extExtendedDynamicState3;
|
VkPhysicalDeviceExtendedDynamicState3FeaturesEXT extExtendedDynamicState3;
|
||||||
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT extFragmentShaderInterlock;
|
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT extFragmentShaderInterlock;
|
||||||
VkBool32 extFullScreenExclusive;
|
VkBool32 extFullScreenExclusive;
|
||||||
|
@ -300,6 +300,7 @@ namespace dxvk {
|
|||||||
DxvkExt extConservativeRasterization = { VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extConservativeRasterization = { VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extCustomBorderColor = { VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extCustomBorderColor = { VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extDepthClipEnable = { VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extDepthClipEnable = { VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
|
DxvkExt extDepthBiasControl = { VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extExtendedDynamicState3 = { VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extExtendedDynamicState3 = { VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extFullScreenExclusive = { VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extFullScreenExclusive = { VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extFragmentShaderInterlock = { VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extFragmentShaderInterlock = { VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
|
@ -272,6 +272,7 @@ namespace dxvk::vk {
|
|||||||
VULKAN_FN(vkCmdSetScissor);
|
VULKAN_FN(vkCmdSetScissor);
|
||||||
VULKAN_FN(vkCmdSetLineWidth);
|
VULKAN_FN(vkCmdSetLineWidth);
|
||||||
VULKAN_FN(vkCmdSetDepthBias);
|
VULKAN_FN(vkCmdSetDepthBias);
|
||||||
|
VULKAN_FN(vkCmdSetDepthBias2EXT);
|
||||||
VULKAN_FN(vkCmdSetBlendConstants);
|
VULKAN_FN(vkCmdSetBlendConstants);
|
||||||
VULKAN_FN(vkCmdSetDepthBounds);
|
VULKAN_FN(vkCmdSetDepthBounds);
|
||||||
VULKAN_FN(vkCmdSetStencilCompareMask);
|
VULKAN_FN(vkCmdSetStencilCompareMask);
|
||||||
|
Loading…
Reference in New Issue
Block a user