Clean up texture cache code for low-VRAM GPUs

This commit is contained in:
KeatonTheBot
2026-03-14 18:06:09 -05:00
parent 5b3a620bb0
commit 8c9cdfe9ce
@@ -50,7 +50,7 @@ namespace Ryujinx.Graphics.Gpu.Image
private const int MaxCapacity = 2048; private const int MaxCapacity = 2048;
private const ulong MiB = 1024 * 1024; private const ulong MiB = 1024 * 1024;
private const ulong GiB = 1024 * 1024 * 1024; private const ulong GiB = 1024 * 1024 * 1024;
private ulong MaxTextureSizeCapacity = 4 * GiB; private ulong MaxTextureSizeCapacity = 2 * GiB;
private const ulong MinTextureSizeCapacity = 512 * MiB; private const ulong MinTextureSizeCapacity = 512 * MiB;
private const ulong DefaultTextureSizeCapacity = 1 * GiB; private const ulong DefaultTextureSizeCapacity = 1 * GiB;
private const ulong TextureSizeCapacity4GiB = 2 * GiB; private const ulong TextureSizeCapacity4GiB = 2 * GiB;
@@ -85,16 +85,20 @@ namespace Ryujinx.Graphics.Gpu.Image
var cpuMemorySizeGiB = cpuMemorySize / GiB; var cpuMemorySizeGiB = cpuMemorySize / GiB;
var MaximumGpuMemoryGiB = context.Capabilities.MaximumGpuMemory / GiB; var MaximumGpuMemoryGiB = context.Capabilities.MaximumGpuMemory / GiB;
MaxTextureSizeCapacity = cpuMemorySizeGiB switch if (context.Capabilities.MaximumGpuMemory == 0)
{ {
< 6 when MaximumGpuMemoryGiB < 6 || context.Capabilities.MaximumGpuMemory == 0 => MaxTextureSizeCapacity = DefaultTextureSizeCapacity;
DefaultTextureSizeCapacity, }
< 6 => TextureSizeCapacity4GiB, else
6 => TextureSizeCapacity6GiB, MaxTextureSizeCapacity = cpuMemorySizeGiB switch
8 => TextureSizeCapacity8GiB, {
10 => TextureSizeCapacity10GiB, < 6 when MaximumGpuMemoryGiB < 6 => DefaultTextureSizeCapacity,
_ => TextureSizeCapacity12GiB < 6 => TextureSizeCapacity4GiB,
}; 6 => TextureSizeCapacity6GiB,
8 => TextureSizeCapacity8GiB,
10 => TextureSizeCapacity10GiB,
_ => TextureSizeCapacity12GiB
};
var cacheMemory = (ulong)(context.Capabilities.MaximumGpuMemory * MemoryScaleFactor); var cacheMemory = (ulong)(context.Capabilities.MaximumGpuMemory * MemoryScaleFactor);