diff --git a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs
index 597c527d..d7691e13 100644
--- a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs
+++ b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs
@@ -62,12 +62,14 @@ namespace Ryujinx.Graphics.Gpu.Image
/// The GPU context that the texture bindings manager belongs to
/// The GPU channel that the texture bindings manager belongs to
/// Texture pools cache used to get texture pools from
+ /// Array where the scales for the currently bound textures are stored
/// True if the bindings manager is used for the compute engine
- public TextureBindingsManager(GpuContext context, GpuChannel channel, TexturePoolCache poolCache, bool isCompute)
+ public TextureBindingsManager(GpuContext context, GpuChannel channel, TexturePoolCache poolCache, float[] scales, bool isCompute)
{
_context = context;
_channel = channel;
_texturePoolCache = poolCache;
+ _scales = scales;
_isCompute = isCompute;
int stages = isCompute ? 1 : Constants.ShaderStages;
@@ -89,13 +91,6 @@ namespace Ryujinx.Graphics.Gpu.Image
_textureState[stage] = new TextureStatePerStage[InitialTextureStateSize];
_imageState[stage] = new TextureStatePerStage[InitialImageStateSize];
}
-
- _scales = new float[64];
-
- for (int i = 0; i < 64; i++)
- {
- _scales[i] = 1f;
- }
}
///
diff --git a/Ryujinx.Graphics.Gpu/Image/TextureManager.cs b/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
index 1d7b8df2..a6373872 100644
--- a/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
+++ b/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
@@ -35,8 +35,11 @@ namespace Ryujinx.Graphics.Gpu.Image
TexturePoolCache texturePoolCache = new TexturePoolCache(context);
- _cpBindingsManager = new TextureBindingsManager(context, channel, texturePoolCache, isCompute: true);
- _gpBindingsManager = new TextureBindingsManager(context, channel, texturePoolCache, isCompute: false);
+ float[] scales = new float[64];
+ new Span(scales).Fill(1f);
+
+ _cpBindingsManager = new TextureBindingsManager(context, channel, texturePoolCache, scales, isCompute: true);
+ _gpBindingsManager = new TextureBindingsManager(context, channel, texturePoolCache, scales, isCompute: false);
_rtColors = new Texture[Constants.TotalRenderTargets];
_rtHostColors = new ITexture[Constants.TotalRenderTargets];