diff --git a/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs b/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs
index 1a75921b81..6effbd857a 100644
--- a/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs
+++ b/src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs
@@ -1,3 +1,4 @@
+using Ryujinx.Graphics.Shader.Translation;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -49,6 +50,7 @@ namespace Ryujinx.Graphics.Gpu.Image
private const int MaxCapacity = 2048;
private const ulong MinTextureSizeCapacity = 512 * 1024 * 1024;
private const ulong MaxTextureSizeCapacity = 4UL * 1024 * 1024 * 1024;
+ private const ulong OpenGLTextureSizeCapacity = 1UL * 1024 * 1024 * 1024;
private const float MemoryScaleFactor = 0.50f;
private ulong _maxCacheMemoryUsage = 0;
@@ -63,12 +65,20 @@ namespace Ryujinx.Graphics.Gpu.Image
///
/// Initializes the cache, setting the maximum texture capacity for the specified GPU context.
///
+ ///
+ /// For OpenGL this defaults to OpenGLTextureSizeCapacity.
+ ///
/// The GPU context that the cache belongs to
public void Initialize(GpuContext context)
{
var CacheMemory = (ulong)(context.Capabilities.MaximumGpuMemory * MemoryScaleFactor);
_maxCacheMemoryUsage = Math.Clamp(CacheMemory, MinTextureSizeCapacity, MaxTextureSizeCapacity);
+
+ if (context.Capabilities.Api == TargetApi.OpenGL)
+ {
+ _maxCacheMemoryUsage = OpenGLTextureSizeCapacity;
+ }
}
///