summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2022-05-25 13:07:39 -0700
committerGravatar GitHub2022-05-25 13:07:39 -0700
commita9beb4746e423e976323fa3866702e0fc977d543 (patch)
treeede945f22168b05518b5b0bfed6e478b6881883b
parentMerge pull request #8369 from lat9nq/amd-wmel-workaround (diff)
parentvulkan_device: Block AMDVLK's VK_KHR_push_descriptor (diff)
downloadyuzu-a9beb4746e423e976323fa3866702e0fc977d543.tar.gz
yuzu-a9beb4746e423e976323fa3866702e0fc977d543.tar.xz
yuzu-a9beb4746e423e976323fa3866702e0fc977d543.zip
Merge pull request #8379 from lat9nq/amd-push-desc-workaround
vulkan_device: Block AMDVLK's VK_KHR_push_descriptor
Diffstat (limited to '')
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index 58d0c6a93..b3a77e07f 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -669,6 +669,17 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
669 const bool is_amd = 669 const bool is_amd =
670 driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE; 670 driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE;
671 if (is_amd) { 671 if (is_amd) {
672 // TODO(lat9nq): Add an upper bound when AMD fixes their VK_KHR_push_descriptor
673 const bool has_broken_push_descriptor = VK_VERSION_MAJOR(properties.driverVersion) == 2 &&
674 VK_VERSION_MINOR(properties.driverVersion) == 0 &&
675 VK_VERSION_PATCH(properties.driverVersion) >= 226;
676 if (khr_push_descriptor && has_broken_push_descriptor) {
677 LOG_WARNING(
678 Render_Vulkan,
679 "Disabling AMD driver 2.0.226 and later from broken VK_KHR_push_descriptor");
680 khr_push_descriptor = false;
681 }
682
672 // AMD drivers need a higher amount of Sets per Pool in certain circunstances like in XC2. 683 // AMD drivers need a higher amount of Sets per Pool in certain circunstances like in XC2.
673 sets_per_pool = 96; 684 sets_per_pool = 96;
674 // Disable VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT on AMD GCN4 and lower as it is broken. 685 // Disable VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT on AMD GCN4 and lower as it is broken.