diff options
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs')
-rw-r--r-- | src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs b/src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs index b236476e..409c7a78 100644 --- a/src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs +++ b/src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs @@ -136,33 +136,30 @@ namespace Ryujinx.Graphics.Gpu.Memory /// <summary> /// Updates the render scales for shader input textures or images. /// </summary> - /// <param name="scales">Scale values</param> - /// <param name="totalCount">Total number of scales across all stages</param> - /// <param name="fragmentCount">Total number of scales on the fragment shader stage</param> - public void UpdateRenderScale(ReadOnlySpan<float> scales, int totalCount, int fragmentCount) + /// <param name="index">Index of the scale</param> + /// <param name="scale">Scale value</param> + public void UpdateRenderScale(int index, float scale) { - bool changed = false; - - for (int index = 0; index < totalCount; index++) + if (_data.RenderScale[1 + index].X != scale) { - if (_data.RenderScale[1 + index].X != scales[index]) - { - _data.RenderScale[1 + index].X = scales[index]; - changed = true; - } + _data.RenderScale[1 + index].X = scale; + DirtyRenderScale(1 + index, 1); } + } + /// <summary> + /// Updates the render scales for shader input textures or images. + /// </summary> + /// <param name="totalCount">Total number of scales across all stages</param> + /// <param name="fragmentCount">Total number of scales on the fragment shader stage</param> + public void UpdateRenderScaleFragmentCount(int totalCount, int fragmentCount) + { // Only update fragment count if there are scales after it for the vertex stage. if (fragmentCount != totalCount && fragmentCount != _data.FragmentRenderScaleCount.X) { _data.FragmentRenderScaleCount.X = fragmentCount; DirtyFragmentRenderScaleCount(); } - - if (changed) - { - DirtyRenderScale(0, 1 + totalCount); - } } /// <summary> @@ -172,7 +169,7 @@ namespace Ryujinx.Graphics.Gpu.Memory /// <param name="isBgra">True if the format is BGRA< false otherwise</param> public void SetRenderTargetIsBgra(int index, bool isBgra) { - bool isBgraChanged = (_data.FragmentIsBgra[index].X != 0) != isBgra; + bool isBgraChanged = _data.FragmentIsBgra[index].X != 0 != isBgra; if (isBgraChanged) { |