Enable ExtendedDynamicState 3
This commit is contained in:
parent
e96383615b
commit
c64c404a2f
1 changed files with 10 additions and 10 deletions
|
@ -582,25 +582,25 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
}
|
}
|
||||||
if (extensions.extended_dynamic_state3 && is_radv) {
|
if (extensions.extended_dynamic_state3 && is_radv) {
|
||||||
LOG_WARNING(Render_Vulkan, "RADV has broken extendedDynamicState3ColorBlendEquation");
|
LOG_WARNING(Render_Vulkan, "RADV has broken extendedDynamicState3ColorBlendEquation");
|
||||||
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false;
|
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = true;
|
||||||
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false;
|
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = true;
|
||||||
dynamic_state3_blending = false;
|
dynamic_state3_blending = true;
|
||||||
|
|
||||||
const u32 version = (properties.properties.driverVersion << 3) >> 3;
|
const u32 version = (properties.properties.driverVersion << 3) >> 3;
|
||||||
if (version < VK_MAKE_API_VERSION(0, 23, 1, 0)) {
|
if (version < VK_MAKE_API_VERSION(0, 23, 1, 0)) {
|
||||||
LOG_WARNING(Render_Vulkan,
|
LOG_WARNING(Render_Vulkan,
|
||||||
"RADV versions older than 23.1.0 have broken depth clamp dynamic state");
|
"RADV versions older than 23.1.0 have broken depth clamp dynamic state");
|
||||||
features.extended_dynamic_state3.extendedDynamicState3DepthClampEnable = false;
|
features.extended_dynamic_state3.extendedDynamicState3DepthClampEnable = true;
|
||||||
dynamic_state3_enables = false;
|
dynamic_state3_enables = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (extensions.extended_dynamic_state3 && (is_amd_driver || driver_id == VK_DRIVER_ID_SAMSUNG_PROPRIETARY)) {
|
if (extensions.extended_dynamic_state3 && (is_amd_driver || driver_id == VK_DRIVER_ID_SAMSUNG_PROPRIETARY)) {
|
||||||
// AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation
|
// AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation
|
||||||
LOG_WARNING(Render_Vulkan,
|
LOG_WARNING(Render_Vulkan,
|
||||||
"AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation");
|
"AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation");
|
||||||
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false;
|
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = true;
|
||||||
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false;
|
features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = true;
|
||||||
dynamic_state3_blending = false;
|
dynamic_state3_blending = true;
|
||||||
}
|
}
|
||||||
if (extensions.vertex_input_dynamic_state && is_radv) {
|
if (extensions.vertex_input_dynamic_state && is_radv) {
|
||||||
// TODO(ameerj): Blacklist only offending driver versions
|
// TODO(ameerj): Blacklist only offending driver versions
|
||||||
|
@ -721,8 +721,8 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
||||||
"Removing extendedDynamicState3 due to missing extendedDynamicState2");
|
"Removing extendedDynamicState3 due to missing extendedDynamicState2");
|
||||||
RemoveExtensionFeature(extensions.extended_dynamic_state3, features.extended_dynamic_state3,
|
RemoveExtensionFeature(extensions.extended_dynamic_state3, features.extended_dynamic_state3,
|
||||||
VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME);
|
VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME);
|
||||||
dynamic_state3_blending = false;
|
dynamic_state3_blending = true;
|
||||||
dynamic_state3_enables = false;
|
dynamic_state3_enables = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
logical = vk::Device::Create(physical, queue_cis, ExtensionListForVulkan(loaded_extensions),
|
logical = vk::Device::Create(physical, queue_cis, ExtensionListForVulkan(loaded_extensions),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue