diff options
| author | 2023-07-03 14:25:06 -0700 | |
|---|---|---|
| committer | 2023-07-03 14:25:06 -0700 | |
| commit | cef7aaa8ec35d378a1ad1e410f32c3aba3ddfa74 (patch) | |
| tree | d84234f18ed5c52e9021f0af5147fc356e1c38c2 | |
| parent | video_core: vulkan_device: Scope S8Gen2 checks to just Qualcomm. (diff) | |
| download | yuzu-cef7aaa8ec35d378a1ad1e410f32c3aba3ddfa74.tar.gz yuzu-cef7aaa8ec35d378a1ad1e410f32c3aba3ddfa74.tar.xz yuzu-cef7aaa8ec35d378a1ad1e410f32c3aba3ddfa74.zip | |
video_core: vulkan_device: Change to driver version check.
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 9ee837c68..248b09855 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -498,14 +498,18 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 498 | loaded_extensions.erase(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); | 498 | loaded_extensions.erase(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); |
| 499 | } | 499 | } |
| 500 | } | 500 | } |
| 501 | if (extensions.extended_dynamic_state2 && is_qualcomm && is_s8gen2) { | 501 | if (extensions.extended_dynamic_state2 && is_qualcomm) { |
| 502 | // Qualcomm S8gen2 drivers do not properly support extended_dynamic_state2. | 502 | const u32 version = (properties.properties.driverVersion << 3) >> 3; |
| 503 | LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken VK_EXT_extended_dynamic_state2"); | 503 | if (version >= VK_MAKE_API_VERSION(0, 0, 676, 0)) { |
| 504 | features.extended_dynamic_state2.extendedDynamicState2 = false; | 504 | // Qualcomm Adreno 7xx drivers do not properly support extended_dynamic_state2. |
| 505 | features.extended_dynamic_state2.extendedDynamicState2LogicOp = false; | 505 | LOG_WARNING(Render_Vulkan, |
| 506 | features.extended_dynamic_state2.extendedDynamicState2PatchControlPoints = false; | 506 | "Qualcomm Adreno 7xx drivers have broken VK_EXT_extended_dynamic_state2"); |
| 507 | extensions.extended_dynamic_state2 = false; | 507 | features.extended_dynamic_state2.extendedDynamicState2 = false; |
| 508 | loaded_extensions.erase(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); | 508 | features.extended_dynamic_state2.extendedDynamicState2LogicOp = false; |
| 509 | features.extended_dynamic_state2.extendedDynamicState2PatchControlPoints = false; | ||
| 510 | extensions.extended_dynamic_state2 = false; | ||
| 511 | loaded_extensions.erase(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); | ||
| 512 | } | ||
| 509 | } | 513 | } |
| 510 | if (extensions.extended_dynamic_state3 && is_radv) { | 514 | if (extensions.extended_dynamic_state3 && is_radv) { |
| 511 | LOG_WARNING(Render_Vulkan, "RADV has broken extendedDynamicState3ColorBlendEquation"); | 515 | LOG_WARNING(Render_Vulkan, "RADV has broken extendedDynamicState3ColorBlendEquation"); |
| @@ -534,13 +538,17 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 534 | loaded_extensions.erase(VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME); | 538 | loaded_extensions.erase(VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME); |
| 535 | } | 539 | } |
| 536 | } | 540 | } |
| 537 | if (extensions.vertex_input_dynamic_state && is_qualcomm && is_s8gen2) { | 541 | if (extensions.vertex_input_dynamic_state && is_qualcomm) { |
| 538 | // Qualcomm S8gen2 drivers do not properly support vertex_input_dynamic_state. | 542 | const u32 version = (properties.properties.driverVersion << 3) >> 3; |
| 539 | LOG_WARNING(Render_Vulkan, | 543 | if (version >= VK_MAKE_API_VERSION(0, 0, 676, 0)) { |
| 540 | "Qualcomm drivers have broken VK_EXT_vertex_input_dynamic_state"); | 544 | // Qualcomm Adreno 7xx drivers do not properly support vertex_input_dynamic_state. |
| 541 | features.vertex_input_dynamic_state.vertexInputDynamicState = false; | 545 | LOG_WARNING( |
| 542 | extensions.vertex_input_dynamic_state = false; | 546 | Render_Vulkan, |
| 543 | loaded_extensions.erase(VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME); | 547 | "Qualcomm Adreno 7xx drivers have broken VK_EXT_vertex_input_dynamic_state"); |
| 548 | features.vertex_input_dynamic_state.vertexInputDynamicState = false; | ||
| 549 | extensions.vertex_input_dynamic_state = false; | ||
| 550 | loaded_extensions.erase(VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME); | ||
| 551 | } | ||
| 544 | } | 552 | } |
| 545 | 553 | ||
| 546 | sets_per_pool = 64; | 554 | sets_per_pool = 64; |