diff options
author | Liam <byteslice@airmail.cc> | 2023-05-20 23:15:36 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-05-23 18:54:40 +0200 |
commit | 415c78b87c008f0d963679ea9bc06c8aa566b506 (patch) | |
tree | 11e6a5d2211a99660a48678059c703e849c06da3 /src/video_core/vulkan_common/vulkan_device.cpp | |
parent | Merge pull request #10392 from danilaml/update-cubeb-again (diff) | |
download | yuzu-415c78b87c008f0d963679ea9bc06c8aa566b506.tar yuzu-415c78b87c008f0d963679ea9bc06c8aa566b506.tar.gz yuzu-415c78b87c008f0d963679ea9bc06c8aa566b506.tar.bz2 yuzu-415c78b87c008f0d963679ea9bc06c8aa566b506.tar.lz yuzu-415c78b87c008f0d963679ea9bc06c8aa566b506.tar.xz yuzu-415c78b87c008f0d963679ea9bc06c8aa566b506.tar.zst yuzu-415c78b87c008f0d963679ea9bc06c8aa566b506.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index f6e6f2736..b49f78bc9 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -1001,6 +1001,11 @@ u64 Device::GetDeviceMemoryUsage() const { } void Device::CollectPhysicalMemoryInfo() { + // Account for resolution scaling in memory limits + const size_t normal_memory = 6_GiB; + const size_t scaler_memory = 1_GiB * Settings::values.resolution_info.ScaleUp(1); + + // Calculate limits using memory budget VkPhysicalDeviceMemoryBudgetPropertiesEXT budget{}; budget.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT; const auto mem_info = @@ -1030,6 +1035,7 @@ void Device::CollectPhysicalMemoryInfo() { if (!is_integrated) { const u64 reserve_memory = std::min<u64>(device_access_memory / 8, 1_GiB); device_access_memory -= reserve_memory; + device_access_memory = std::min<u64>(device_access_memory, normal_memory + scaler_memory); return; } const s64 available_memory = static_cast<s64>(device_access_memory - device_initial_usage); |