mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Enable VK_EXT_custom_border_color if available
This commit is contained in:
parent
513f3f552d
commit
a968f29754
@ -217,6 +217,10 @@ namespace dxvk {
|
|||||||
|| !required.shaderDrawParameters.shaderDrawParameters)
|
|| !required.shaderDrawParameters.shaderDrawParameters)
|
||||||
&& (m_deviceFeatures.extConditionalRendering.conditionalRendering
|
&& (m_deviceFeatures.extConditionalRendering.conditionalRendering
|
||||||
|| !required.extConditionalRendering.conditionalRendering)
|
|| !required.extConditionalRendering.conditionalRendering)
|
||||||
|
&& (m_deviceFeatures.extCustomBorderColor.customBorderColors
|
||||||
|
|| !required.extCustomBorderColor.customBorderColors)
|
||||||
|
&& (m_deviceFeatures.extCustomBorderColor.customBorderColorWithoutFormat
|
||||||
|
|| !required.extCustomBorderColor.customBorderColorWithoutFormat)
|
||||||
&& (m_deviceFeatures.extDepthClipEnable.depthClipEnable
|
&& (m_deviceFeatures.extDepthClipEnable.depthClipEnable
|
||||||
|| !required.extDepthClipEnable.depthClipEnable)
|
|| !required.extDepthClipEnable.depthClipEnable)
|
||||||
&& (m_deviceFeatures.extHostQueryReset.hostQueryReset
|
&& (m_deviceFeatures.extHostQueryReset.hostQueryReset
|
||||||
@ -248,10 +252,11 @@ namespace dxvk {
|
|||||||
DxvkDeviceFeatures enabledFeatures) {
|
DxvkDeviceFeatures enabledFeatures) {
|
||||||
DxvkDeviceExtensions devExtensions;
|
DxvkDeviceExtensions devExtensions;
|
||||||
|
|
||||||
std::array<DxvkExt*, 21> devExtensionList = {{
|
std::array<DxvkExt*, 22> devExtensionList = {{
|
||||||
&devExtensions.amdMemoryOverallocationBehaviour,
|
&devExtensions.amdMemoryOverallocationBehaviour,
|
||||||
&devExtensions.amdShaderFragmentMask,
|
&devExtensions.amdShaderFragmentMask,
|
||||||
&devExtensions.extConditionalRendering,
|
&devExtensions.extConditionalRendering,
|
||||||
|
&devExtensions.extCustomBorderColor,
|
||||||
&devExtensions.extDepthClipEnable,
|
&devExtensions.extDepthClipEnable,
|
||||||
&devExtensions.extFullScreenExclusive,
|
&devExtensions.extFullScreenExclusive,
|
||||||
&devExtensions.extHostQueryReset,
|
&devExtensions.extHostQueryReset,
|
||||||
@ -307,6 +312,11 @@ namespace dxvk {
|
|||||||
enabledFeatures.extConditionalRendering.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extConditionalRendering);
|
enabledFeatures.extConditionalRendering.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extConditionalRendering);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (devExtensions.extCustomBorderColor) {
|
||||||
|
enabledFeatures.extCustomBorderColor.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
|
||||||
|
enabledFeatures.extCustomBorderColor.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extCustomBorderColor);
|
||||||
|
}
|
||||||
|
|
||||||
if (devExtensions.extDepthClipEnable) {
|
if (devExtensions.extDepthClipEnable) {
|
||||||
enabledFeatures.extDepthClipEnable.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
|
enabledFeatures.extDepthClipEnable.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
|
||||||
enabledFeatures.extDepthClipEnable.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extDepthClipEnable);
|
enabledFeatures.extDepthClipEnable.pNext = std::exchange(enabledFeatures.core.pNext, &enabledFeatures.extDepthClipEnable);
|
||||||
@ -487,6 +497,11 @@ namespace dxvk {
|
|||||||
m_deviceInfo.coreSubgroup.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
|
m_deviceInfo.coreSubgroup.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
|
||||||
m_deviceInfo.coreSubgroup.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.coreSubgroup);
|
m_deviceInfo.coreSubgroup.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.coreSubgroup);
|
||||||
|
|
||||||
|
if (m_deviceExtensions.supports(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME)) {
|
||||||
|
m_deviceInfo.extCustomBorderColor.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
|
||||||
|
m_deviceInfo.extCustomBorderColor.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.extCustomBorderColor);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME)) {
|
if (m_deviceExtensions.supports(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME)) {
|
||||||
m_deviceInfo.extRobustness2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT;
|
m_deviceInfo.extRobustness2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT;
|
||||||
m_deviceInfo.extRobustness2.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.extRobustness2);
|
m_deviceInfo.extRobustness2.pNext = std::exchange(m_deviceInfo.core.pNext, &m_deviceInfo.extRobustness2);
|
||||||
@ -538,6 +553,11 @@ namespace dxvk {
|
|||||||
m_deviceFeatures.extConditionalRendering.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extConditionalRendering);
|
m_deviceFeatures.extConditionalRendering.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extConditionalRendering);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_deviceExtensions.supports(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME)) {
|
||||||
|
m_deviceFeatures.extCustomBorderColor.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
|
||||||
|
m_deviceFeatures.extCustomBorderColor.pNext = std::exchange(m_deviceFeatures.core.pNext, &m_deviceFeatures.extCustomBorderColor);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_deviceExtensions.supports(VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME)) {
|
if (m_deviceExtensions.supports(VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME)) {
|
||||||
m_deviceFeatures.extDepthClipEnable.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
|
m_deviceFeatures.extDepthClipEnable.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
|
||||||
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);
|
||||||
@ -641,6 +661,9 @@ namespace dxvk {
|
|||||||
"\n variableMultisampleRate : ", features.core.features.variableMultisampleRate ? "1" : "0",
|
"\n variableMultisampleRate : ", features.core.features.variableMultisampleRate ? "1" : "0",
|
||||||
"\n", VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME,
|
"\n", VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME,
|
||||||
"\n conditionalRendering : ", features.extConditionalRendering.conditionalRendering ? "1" : "0",
|
"\n conditionalRendering : ", features.extConditionalRendering.conditionalRendering ? "1" : "0",
|
||||||
|
"\n", VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME,
|
||||||
|
"\n customBorderColors : ", features.extCustomBorderColor.customBorderColors ? "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_HOST_QUERY_RESET_EXTENSION_NAME,
|
"\n", VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME,
|
||||||
|
@ -16,6 +16,7 @@ namespace dxvk {
|
|||||||
VkPhysicalDeviceProperties2 core;
|
VkPhysicalDeviceProperties2 core;
|
||||||
VkPhysicalDeviceIDProperties coreDeviceId;
|
VkPhysicalDeviceIDProperties coreDeviceId;
|
||||||
VkPhysicalDeviceSubgroupProperties coreSubgroup;
|
VkPhysicalDeviceSubgroupProperties coreSubgroup;
|
||||||
|
VkPhysicalDeviceCustomBorderColorPropertiesEXT extCustomBorderColor;
|
||||||
VkPhysicalDeviceRobustness2PropertiesEXT extRobustness2;
|
VkPhysicalDeviceRobustness2PropertiesEXT extRobustness2;
|
||||||
VkPhysicalDeviceTransformFeedbackPropertiesEXT extTransformFeedback;
|
VkPhysicalDeviceTransformFeedbackPropertiesEXT extTransformFeedback;
|
||||||
VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT extVertexAttributeDivisor;
|
VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT extVertexAttributeDivisor;
|
||||||
@ -35,6 +36,7 @@ namespace dxvk {
|
|||||||
VkPhysicalDeviceFeatures2 core;
|
VkPhysicalDeviceFeatures2 core;
|
||||||
VkPhysicalDeviceShaderDrawParametersFeatures shaderDrawParameters;
|
VkPhysicalDeviceShaderDrawParametersFeatures shaderDrawParameters;
|
||||||
VkPhysicalDeviceConditionalRenderingFeaturesEXT extConditionalRendering;
|
VkPhysicalDeviceConditionalRenderingFeaturesEXT extConditionalRendering;
|
||||||
|
VkPhysicalDeviceCustomBorderColorFeaturesEXT extCustomBorderColor;
|
||||||
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
VkPhysicalDeviceDepthClipEnableFeaturesEXT extDepthClipEnable;
|
||||||
VkPhysicalDeviceHostQueryResetFeaturesEXT extHostQueryReset;
|
VkPhysicalDeviceHostQueryResetFeaturesEXT extHostQueryReset;
|
||||||
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
|
VkPhysicalDeviceMemoryPriorityFeaturesEXT extMemoryPriority;
|
||||||
|
@ -261,6 +261,7 @@ namespace dxvk {
|
|||||||
DxvkExt amdMemoryOverallocationBehaviour = { VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt amdMemoryOverallocationBehaviour = { VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt amdShaderFragmentMask = { VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt amdShaderFragmentMask = { VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extConditionalRendering = { VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, DxvkExtMode::Disabled };
|
DxvkExt extConditionalRendering = { VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, DxvkExtMode::Disabled };
|
||||||
|
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 extFullScreenExclusive = { VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extFullScreenExclusive = { VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
DxvkExt extHostQueryReset = { VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, DxvkExtMode::Optional };
|
DxvkExt extHostQueryReset = { VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, DxvkExtMode::Optional };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user