diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-09-13 23:20:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-13 23:20:07 +0200 |
commit | fde9b84b2123ba2e018e985024bf8c4d556798f0 (patch) | |
tree | 3c5d270419105b9d30114c344e05c4f7aeda7947 /src/video_core/vulkan_common | |
parent | Merge pull request #7001 from ameerj/wario-fix (diff) | |
parent | Vulkan/Descriptors: Increase sets per pool on AMFD propietary driver. (diff) | |
download | yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.tar yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.tar.gz yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.tar.bz2 yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.tar.lz yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.tar.xz yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.tar.zst yuzu-fde9b84b2123ba2e018e985024bf8c4d556798f0.zip |
Diffstat (limited to 'src/video_core/vulkan_common')
-rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 6 | ||||
-rw-r--r-- | src/video_core/vulkan_common/vulkan_device.h | 5 |
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 graphics_queue = logical.GetQueue(graphics_family); present_queue = logical.GetQueue(present_family); + + sets_per_pool = 64; + if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) { + // AMD drivers need a higher amount of Sets per Pool in certain circunstances like in XC2. + sets_per_pool = 96; + } } Device::~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: return device_access_memory; } + u32 GetSetsPerPool() const { + return sets_per_pool; + } + private: /// Checks if the physical device is suitable. void CheckSuitability(bool requires_swapchain) const; @@ -376,6 +380,7 @@ private: VkShaderStageFlags guest_warp_stages{}; ///< Stages where the guest warp size can be forced. u64 device_access_memory{}; ///< Total size of device local memory in bytes. u32 max_push_descriptors{}; ///< Maximum number of push descriptors + u32 sets_per_pool{}; ///< Sets per Description Pool bool is_optimal_astc_supported{}; ///< Support for native ASTC. bool is_float16_supported{}; ///< Support for float16 arithmetic. bool is_int8_supported{}; ///< Support for int8 arithmetic. |