diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/Methods.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Engine/Methods.cs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/Methods.cs b/Ryujinx.Graphics.Gpu/Engine/Methods.cs index 5388c86d..29360cf9 100644 --- a/Ryujinx.Graphics.Gpu/Engine/Methods.cs +++ b/Ryujinx.Graphics.Gpu/Engine/Methods.cs @@ -123,7 +123,7 @@ namespace Ryujinx.Graphics.Gpu.Engine } // Pools. - if (state.QueryModified(MethodOffset.SamplerPoolState)) + if (state.QueryModified(MethodOffset.SamplerPoolState, MethodOffset.SamplerIndex)) { UpdateSamplerPoolState(state); } @@ -422,11 +422,16 @@ namespace Ryujinx.Graphics.Gpu.Engine private void UpdateSamplerPoolState(GpuState state) { + var texturePool = state.Get<PoolState>(MethodOffset.TexturePoolState); var samplerPool = state.Get<PoolState>(MethodOffset.SamplerPoolState); var samplerIndex = state.Get<SamplerIndex>(MethodOffset.SamplerIndex); - _textureManager.SetGraphicsSamplerPool(samplerPool.Address.Pack(), samplerPool.MaximumId, samplerIndex); + int maximumId = samplerIndex == SamplerIndex.ViaHeaderIndex + ? texturePool.MaximumId + : samplerPool.MaximumId; + + _textureManager.SetGraphicsSamplerPool(samplerPool.Address.Pack(), maximumId, samplerIndex); } private void UpdateTexturePoolState(GpuState state) |
