diff options
author | Liam <byteslice@airmail.cc> | 2023-06-15 18:29:23 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-06-15 18:29:54 +0200 |
commit | 3304d58edb257b8349bc06f9f95f92897d2a2d38 (patch) | |
tree | eb03233071f25920762939fa67b6aaa0015cad15 /src/video_core/vulkan_common | |
parent | Merge pull request #10729 from liamwhite/windows-is-a-meme (diff) | |
download | yuzu-3304d58edb257b8349bc06f9f95f92897d2a2d38.tar yuzu-3304d58edb257b8349bc06f9f95f92897d2a2d38.tar.gz yuzu-3304d58edb257b8349bc06f9f95f92897d2a2d38.tar.bz2 yuzu-3304d58edb257b8349bc06f9f95f92897d2a2d38.tar.lz yuzu-3304d58edb257b8349bc06f9f95f92897d2a2d38.tar.xz yuzu-3304d58edb257b8349bc06f9f95f92897d2a2d38.tar.zst yuzu-3304d58edb257b8349bc06f9f95f92897d2a2d38.zip |
Diffstat (limited to 'src/video_core/vulkan_common')
-rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index a46f9beed..3d2e9a16a 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -344,6 +344,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR const bool is_qualcomm = driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY; const bool is_turnip = driver_id == VK_DRIVER_ID_MESA_TURNIP; const bool is_s8gen2 = device_id == 0x43050a01; + const bool is_arm = driver_id == VK_DRIVER_ID_ARM_PROPRIETARY; if ((is_mvk || is_qualcomm || is_turnip) && !is_suitable) { LOG_WARNING(Render_Vulkan, "Unsuitable driver, continuing anyway"); @@ -391,7 +392,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR CollectPhysicalMemoryInfo(); CollectToolingInfo(); -#ifdef ANDROID if (is_qualcomm || is_turnip) { LOG_WARNING(Render_Vulkan, "Qualcomm and Turnip drivers have broken VK_EXT_custom_border_color"); @@ -411,7 +411,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR extensions.push_descriptor = false; loaded_extensions.erase(VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME); -#ifdef ARCHITECTURE_arm64 +#if defined(ANDROID) && defined(ARCHITECTURE_arm64) // Patch the driver to enable BCn textures. const auto major = (properties.properties.driverVersion >> 24) << 2; const auto minor = (properties.properties.driverVersion >> 12) & 0xFFFU; @@ -431,18 +431,23 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR } else { LOG_WARNING(Render_Vulkan, "Adreno driver can't be patched to enable BCn textures"); } -#endif // ARCHITECTURE_arm64 +#endif } - const bool is_arm = driver_id == VK_DRIVER_ID_ARM_PROPRIETARY; if (is_arm) { must_emulate_scaled_formats = true; LOG_WARNING(Render_Vulkan, "ARM drivers have broken VK_EXT_extended_dynamic_state"); extensions.extended_dynamic_state = false; loaded_extensions.erase(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME); + + LOG_WARNING(Render_Vulkan, "ARM drivers have broken VK_EXT_extended_dynamic_state2"); + features.extended_dynamic_state2.extendedDynamicState2 = false; + features.extended_dynamic_state2.extendedDynamicState2LogicOp = false; + features.extended_dynamic_state2.extendedDynamicState2PatchControlPoints = false; + extensions.extended_dynamic_state2 = false; + loaded_extensions.erase(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); } -#endif // ANDROID if (is_nvidia) { const u32 nv_major_version = (properties.properties.driverVersion >> 22) & 0x3ff; |