summaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common
diff options
context:
space:
mode:
authorGravatar Morph2021-09-13 17:20:07 -0400
committerGravatar GitHub2021-09-13 17:20:07 -0400
commitfde9b84b2123ba2e018e985024bf8c4d556798f0 (patch)
tree3c5d270419105b9d30114c344e05c4f7aeda7947 /src/video_core/vulkan_common
parentMerge pull request #7001 from ameerj/wario-fix (diff)
parentVulkan/Descriptors: Increase sets per pool on AMFD propietary driver. (diff)
downloadyuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.tar.gz
yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.tar.xz
yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.zip
Merge pull request #6944 from FernandoS27/dear-drunk-me
Vulkan/Descriptors: Increase sets per pool on AMD propietary driver.
Diffstat (limited to 'src/video_core/vulkan_common')
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp6
-rw-r--r--src/video_core/vulkan_common/vulkan_device.h5
2 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 24821c1a3..40b7ea90f 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -599,6 +599,12 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
599 599
600 graphics_queue = logical.GetQueue(graphics_family); 600 graphics_queue = logical.GetQueue(graphics_family);
601 present_queue = logical.GetQueue(present_family); 601 present_queue = logical.GetQueue(present_family);
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 }
602} 608}
603 609
604Device::~Device() = default; 610Device::~Device() = default;
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h
index 5599c38c5..bc180a32a 100644
--- a/src/video_core/vulkan_common/vulkan_device.h
+++ b/src/video_core/vulkan_common/vulkan_device.h
@@ -323,6 +323,10 @@ public:
323 return device_access_memory; 323 return device_access_memory;
324 } 324 }
325 325
326 u32 GetSetsPerPool() const {
327 return sets_per_pool;
328 }
329
326private: 330private:
327 /// Checks if the physical device is suitable. 331 /// Checks if the physical device is suitable.
328 void CheckSuitability(bool requires_swapchain) const; 332 void CheckSuitability(bool requires_swapchain) const;
@@ -376,6 +380,7 @@ private:
376 VkShaderStageFlags guest_warp_stages{}; ///< Stages where the guest warp size can be forced. 380 VkShaderStageFlags guest_warp_stages{}; ///< Stages where the guest warp size can be forced.
377 u64 device_access_memory{}; ///< Total size of device local memory in bytes. 381 u64 device_access_memory{}; ///< Total size of device local memory in bytes.
378 u32 max_push_descriptors{}; ///< Maximum number of push descriptors 382 u32 max_push_descriptors{}; ///< Maximum number of push descriptors
383 u32 sets_per_pool{}; ///< Sets per Description Pool
379 bool is_optimal_astc_supported{}; ///< Support for native ASTC. 384 bool is_optimal_astc_supported{}; ///< Support for native ASTC.
380 bool is_float16_supported{}; ///< Support for float16 arithmetic. 385 bool is_float16_supported{}; ///< Support for float16 arithmetic.
381 bool is_int8_supported{}; ///< Support for int8 arithmetic. 386 bool is_int8_supported{}; ///< Support for int8 arithmetic.