summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index 2caf98c7c..24fb50db9 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -599,6 +599,26 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
599 ext_extended_dynamic_state = false; 599 ext_extended_dynamic_state = false;
600 } 600 }
601 } 601 }
602
603 sets_per_pool = 64;
604 if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) {
605 // AMD drivers need a higher amount of Sets per Pool in certain circunstances like in XC2.
606 sets_per_pool = 96;
607 }
608
609 const bool is_amd = driver_id == VK_DRIVER_ID_AMD_PROPRIETARY ||
610 driver_id == VK_DRIVER_ID_MESA_RADV ||
611 driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE;
612 if (ext_sampler_filter_minmax && is_amd) {
613 // Disable ext_sampler_filter_minmax on AMD GCN4 and lower as it is broken.
614 if (!is_float16_supported) {
615 LOG_WARNING(
616 Render_Vulkan,
617 "Blacklisting AMD GCN4 and lower for VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME");
618 ext_sampler_filter_minmax = false;
619 }
620 }
621
602 if (ext_vertex_input_dynamic_state && driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) { 622 if (ext_vertex_input_dynamic_state && driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) {
603 LOG_WARNING(Render_Vulkan, "Blacklisting Intel for VK_EXT_vertex_input_dynamic_state"); 623 LOG_WARNING(Render_Vulkan, "Blacklisting Intel for VK_EXT_vertex_input_dynamic_state");
604 ext_vertex_input_dynamic_state = false; 624 ext_vertex_input_dynamic_state = false;
@@ -611,12 +631,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
611 631
612 graphics_queue = logical.GetQueue(graphics_family); 632 graphics_queue = logical.GetQueue(graphics_family);
613 present_queue = logical.GetQueue(present_family); 633 present_queue = logical.GetQueue(present_family);
614
615 sets_per_pool = 64;
616 if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) {
617 // AMD drivers need a higher amount of Sets per Pool in certain circunstances like in XC2.
618 sets_per_pool = 96;
619 }
620} 634}
621 635
622Device::~Device() = default; 636Device::~Device() = default;