diff options
author | gdkchan <gab.dark.100@gmail.com> | 2023-07-11 14:07:41 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-11 14:07:41 -0300 |
commit | 9c6071a645e72b56e42cf687f9c1a182be2673ac (patch) | |
tree | f5efb327ff38f69a7630745f39f06caef01211e6 /src/Ryujinx.Graphics.Gpu/Engine/Threed/StateUpdater.cs | |
parent | fa32ef92755a51a2567a1bcbb35fb34886b5f979 (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.cs | 17 |
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); } |