diff --git a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs
index 2d0e828efa..74d7a76a97 100644
--- a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs
+++ b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs
@@ -33,12 +33,11 @@ namespace Ryujinx.Graphics.Gpu.Image
 
         private bool _rebind;
 
-        public TextureBindingsManager(GpuContext context, bool isCompute)
+        public TextureBindingsManager(GpuContext context, TexturePoolCache texturePoolCache, bool isCompute)
         {
-            _context   = context;
-            _isCompute = isCompute;
-
-            _texturePoolCache = new TexturePoolCache(context);
+            _context          = context;
+            _texturePoolCache = texturePoolCache;
+            _isCompute        = isCompute;
 
             int stages = isCompute ? 1 : Constants.TotalShaderStages;
 
diff --git a/Ryujinx.Graphics.Gpu/Image/TextureManager.cs b/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
index d4c161bd8b..045c2ed947 100644
--- a/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
+++ b/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
@@ -30,8 +30,10 @@ namespace Ryujinx.Graphics.Gpu.Image
         {
             _context = context;
 
-            _cpBindingsManager = new TextureBindingsManager(context, isCompute: true);
-            _gpBindingsManager = new TextureBindingsManager(context, isCompute: false);
+            TexturePoolCache texturePoolCache = new TexturePoolCache(context);
+
+            _cpBindingsManager = new TextureBindingsManager(context, texturePoolCache, isCompute: true);
+            _gpBindingsManager = new TextureBindingsManager(context, texturePoolCache, isCompute: false);
 
             _rtColors = new Texture[Constants.TotalRenderTargets];