aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2023-07-11 14:07:41 -0300
committerGitHub <noreply@github.com>2023-07-11 14:07:41 -0300
commit9c6071a645e72b56e42cf687f9c1a182be2673ac (patch)
treef5efb327ff38f69a7630745f39f06caef01211e6 /src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs
parentfa32ef92755a51a2567a1bcbb35fb34886b5f979 (diff)
Move support buffer update out of the backends (#5411)1.1.959
* Move support buffer update out of the backends * Fix render scale init and remove redundant state from SupportBufferUpdater * Stop passing texture scale to the backends * XML docs for SupportBufferUpdater
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs')
-rw-r--r--src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs b/src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs
index 34439657..b4f56245 100644
--- a/src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs
+++ b/src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs
@@ -495,6 +495,11 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
{
clipRegionHeight = color.Height / samplesInY;
}
+
+ if (!_context.Capabilities.SupportsBgraFormat)
+ {
+ _context.SupportBufferUpdater.SetRenderTargetIsBgra(index, color.Format.IsBgr());
+ }
}
}
@@ -539,7 +544,7 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
if (oldScale != _channel.TextureManager.RenderTargetScale)
{
- _context.Renderer.Pipeline.SetRenderTargetScale(_channel.TextureManager.RenderTargetScale);
+ _context.SupportBufferUpdater.SetRenderTargetScale(_channel.TextureManager.RenderTargetScale);
UpdateViewportTransform();
UpdateScissorState();
@@ -758,9 +763,15 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
}
_context.Renderer.Pipeline.SetDepthMode(GetDepthMode());
- _context.Renderer.Pipeline.SetViewports(viewports, disableTransform);
+ _context.Renderer.Pipeline.SetViewports(viewports);
+
+ _context.SupportBufferUpdater.SetViewportTransformDisable(
+ viewports[0].Region.Width,
+ viewports[0].Region.Height,
+ _channel.TextureManager.RenderTargetScale,
+ disableTransform);
- _currentSpecState.SetViewportTransformDisable(_state.State.ViewportTransformEnable == 0);
+ _currentSpecState.SetViewportTransformDisable(disableTransform);
_currentSpecState.SetDepthMode(GetDepthMode() == DepthMode.MinusOneToOne);
}