diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 09b95cc3f..bd67e27ed 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -525,6 +525,13 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 525 | dynamic_state3_enables = false; | 525 | dynamic_state3_enables = false; |
| 526 | } | 526 | } |
| 527 | } | 527 | } |
| 528 | if (extensions.extended_dynamic_state3 && is_amd_driver) { | ||
| 529 | LOG_WARNING(Render_Vulkan, | ||
| 530 | "AMD drivers have broken extendedDynamicState3ColorBlendEquation"); | ||
| 531 | features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false; | ||
| 532 | features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false; | ||
| 533 | dynamic_state3_blending = false; | ||
| 534 | } | ||
| 528 | if (extensions.vertex_input_dynamic_state && is_radv) { | 535 | if (extensions.vertex_input_dynamic_state && is_radv) { |
| 529 | // TODO(ameerj): Blacklist only offending driver versions | 536 | // TODO(ameerj): Blacklist only offending driver versions |
| 530 | // TODO(ameerj): Confirm if RDNA1 is affected | 537 | // TODO(ameerj): Confirm if RDNA1 is affected |
| @@ -553,14 +560,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 553 | } | 560 | } |
| 554 | 561 | ||
| 555 | sets_per_pool = 64; | 562 | sets_per_pool = 64; |
| 556 | if (extensions.extended_dynamic_state3 && is_amd_driver && | ||
| 557 | !features.shader_float16_int8.shaderFloat16 && | ||
| 558 | properties.properties.driverVersion >= VK_MAKE_API_VERSION(0, 2, 0, 258)) { | ||
| 559 | LOG_WARNING(Render_Vulkan, "AMD GCN4 has broken extendedDynamicState3ColorBlendEquation"); | ||
| 560 | features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false; | ||
| 561 | features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false; | ||
| 562 | dynamic_state3_blending = false; | ||
| 563 | } | ||
| 564 | if (is_amd_driver) { | 563 | if (is_amd_driver) { |
| 565 | // AMD drivers need a higher amount of Sets per Pool in certain circumstances like in XC2. | 564 | // AMD drivers need a higher amount of Sets per Pool in certain circumstances like in XC2. |
| 566 | sets_per_pool = 96; | 565 | sets_per_pool = 96; |