From 116f07cbb197f7d6deab58e6fec840542b1cb9a2 Mon Sep 17 00:00:00 2001 From: MaxLastBreath Date: Wed, 18 Sep 2024 03:43:22 +0300 Subject: [PATCH] maxMemory to CacheMemory, use Clamp instead of Ternary. Changed MinTextureCapacity 1GiB to 512 MiB --- src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs | 11 ++++------- src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs | 3 +++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs b/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs index 20fb2f47eb..62cefd8eab 100644 --- a/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs +++ b/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs @@ -1,4 +1,4 @@ -using Ryujinx.Common.Logging; +using System; using System.Collections; using System.Collections.Generic; @@ -47,7 +47,7 @@ namespace Ryujinx.Graphics.Gpu.Image { private const int MinCountForDeletion = 32; private const int MaxCapacity = 2048; - private const ulong DefaultTextureSizeCapacity = 1UL * 1024 * 1024 * 1024; + private const ulong MinTextureSizeCapacity = 512 * 1024 * 1024; private const ulong MaxTextureSizeCapacity = 4UL * 1024 * 1024 * 1024; private const float MemoryScaleFactor = 0.50f; private ulong _maxCacheMemoryUsage = 0; @@ -65,12 +65,9 @@ namespace Ryujinx.Graphics.Gpu.Image /// public void Initialize(GpuContext context) { - var maxMemory = (ulong)(context.Capabilities.MaximumGpuMemory * MemoryScaleFactor); + var CacheMemory = (ulong)(context.Capabilities.MaximumGpuMemory * MemoryScaleFactor); - _maxCacheMemoryUsage = maxMemory == 0 ? - DefaultTextureSizeCapacity : - maxMemory > MaxTextureSizeCapacity ? - MaxTextureSizeCapacity : maxMemory; + _maxCacheMemoryUsage = Math.Clamp(CacheMemory, MinTextureSizeCapacity, MaxTextureSizeCapacity); } /// diff --git a/src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs b/src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs index 85a1da326a..1587e20189 100644 --- a/src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs +++ b/src/Ryujinx.Graphics.Gpu/Image/TextureCache.cs @@ -68,6 +68,9 @@ namespace Ryujinx.Graphics.Gpu.Image _cache = new AutoDeleteCache(); } + /// + /// Initializes the cache, setting the maximum texture capacity for the specified GPU context. + /// public void Initialize() { _cache.Initialize(_context);