aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs')
-rw-r--r--src/Ryujinx.Graphics.Gpu/Memory/SupportBufferUpdater.cs33
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)
{