From 17fb11ddb98e94aaf494eaf6002ab149c5d54000 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 6 Dec 2019 20:19:12 -0300 Subject: Fix wrong maximum id on sampler pool in some cases --- Ryujinx.Graphics.Gpu/Image/Pool.cs | 5 ++++- Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'Ryujinx.Graphics.Gpu/Image') diff --git a/Ryujinx.Graphics.Gpu/Image/Pool.cs b/Ryujinx.Graphics.Gpu/Image/Pool.cs index 7457de19..5ce8d7f6 100644 --- a/Ryujinx.Graphics.Gpu/Image/Pool.cs +++ b/Ryujinx.Graphics.Gpu/Image/Pool.cs @@ -11,12 +11,15 @@ namespace Ryujinx.Graphics.Gpu.Image protected T[] Items; + public int MaximumId { get; } + public ulong Address { get; } public ulong Size { get; } public Pool(GpuContext context, ulong address, int maximumId) { - Context = context; + Context = context; + MaximumId = maximumId; int count = maximumId + 1; diff --git a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs index 290bb665..63a42709 100644 --- a/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs +++ b/Ryujinx.Graphics.Gpu/Image/TextureBindingsManager.cs @@ -76,7 +76,7 @@ namespace Ryujinx.Graphics.Gpu.Image if (_samplerPool != null) { - if (_samplerPool.Address == address) + if (_samplerPool.Address == address && _samplerPool.MaximumId >= maximumId) { return; } -- cgit v1.2.3