diff options
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Engine/Methods.cs')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Engine/Methods.cs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/Ryujinx.Graphics.Gpu/Engine/Methods.cs b/Ryujinx.Graphics.Gpu/Engine/Methods.cs index fbde0f0a..f8b6e43f 100644 --- a/Ryujinx.Graphics.Gpu/Engine/Methods.cs +++ b/Ryujinx.Graphics.Gpu/Engine/Methods.cs @@ -164,6 +164,13 @@ namespace Ryujinx.Graphics.Gpu.Engine UpdateDepthClampState(state); } + if (state.QueryModified(MethodOffset.AlphaTestEnable, + MethodOffset.AlphaTestRef, + MethodOffset.AlphaTestFunc)) + { + UpdateAlphaTestState(state); + } + if (state.QueryModified(MethodOffset.DepthTestEnable, MethodOffset.DepthWriteEnable, MethodOffset.DepthTestFunc)) @@ -372,7 +379,7 @@ namespace Ryujinx.Graphics.Gpu.Engine if (dsEnable) { var dsState = state.Get<RtDepthStencilState>(MethodOffset.RtDepthStencilState); - var dsSize = state.Get<Size3D> (MethodOffset.RtDepthStencilSize); + var dsSize = state.Get<Size3D>(MethodOffset.RtDepthStencilSize); depthStencil = TextureManager.FindOrCreateTexture(dsState, dsSize, samplesInX, samplesInY); } @@ -451,6 +458,18 @@ namespace Ryujinx.Graphics.Gpu.Engine } /// <summary> + /// Updates host alpha test state based on current GPU state. + /// </summary> + /// <param name="state">Current GPU state</param> + private void UpdateAlphaTestState(GpuState state) + { + _context.Renderer.Pipeline.SetAlphaTest( + state.Get<Boolean32>(MethodOffset.AlphaTestEnable), + state.Get<float>(MethodOffset.AlphaTestRef), + state.Get<CompareOp>(MethodOffset.AlphaTestFunc)); + } + + /// <summary> /// Updates host depth test state based on current GPU state. /// </summary> /// <param name="state">Current GPU state</param> @@ -577,8 +596,8 @@ namespace Ryujinx.Graphics.Gpu.Engine /// <param name="state">Current GPU state</param> private void UpdateStencilTestState(GpuState state) { - var backMasks = state.Get<StencilBackMasks> (MethodOffset.StencilBackMasks); - var test = state.Get<StencilTestState> (MethodOffset.StencilTestState); + var backMasks = state.Get<StencilBackMasks>(MethodOffset.StencilBackMasks); + var test = state.Get<StencilTestState>(MethodOffset.StencilTestState); var backTest = state.Get<StencilBackTestState>(MethodOffset.StencilBackTestState); CompareOp backFunc; |
