diff options
| author | 2021-09-13 17:20:07 -0400 | |
|---|---|---|
| committer | 2021-09-13 17:20:07 -0400 | |
| 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.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.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 | |||
| 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 | ||
| 604 | Device::~Device() = default; | 610 | 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: | |||
| 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 | |||
| 326 | private: | 330 | private: |
| 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. |