From 044b84b078c910c9c1d16c5351cd037716db70e3 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Tue, 23 Oct 2018 16:04:08 -0300 Subject: Add depth range support on the GPU (#472) * Add depth range support on the GPU * Address PR feedback --- Ryujinx.Graphics/Gal/OpenGL/OGLPipeline.cs | 48 +++++++++++++++++------------- 1 file changed, 28 insertions(+), 20 deletions(-) (limited to 'Ryujinx.Graphics/Gal/OpenGL') diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLPipeline.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLPipeline.cs index 00699641..656d8e8e 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OGLPipeline.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLPipeline.cs @@ -95,44 +95,46 @@ namespace Ryujinx.Graphics.Gal.OpenGL FrontFace = GalFrontFace.CCW, CullFaceEnabled = false, - CullFace = GalCullFace.Back, + CullFace = GalCullFace.Back, - DepthTestEnabled = false, + DepthTestEnabled = false, DepthWriteEnabled = true, - DepthFunc = GalComparisonOp.Less, + DepthFunc = GalComparisonOp.Less, + DepthRangeNear = 0, + DepthRangeFar = 1, StencilTestEnabled = false, StencilBackFuncFunc = GalComparisonOp.Always, - StencilBackFuncRef = 0, + StencilBackFuncRef = 0, StencilBackFuncMask = UInt32.MaxValue, - StencilBackOpFail = GalStencilOp.Keep, - StencilBackOpZFail = GalStencilOp.Keep, - StencilBackOpZPass = GalStencilOp.Keep, - StencilBackMask = UInt32.MaxValue, + StencilBackOpFail = GalStencilOp.Keep, + StencilBackOpZFail = GalStencilOp.Keep, + StencilBackOpZPass = GalStencilOp.Keep, + StencilBackMask = UInt32.MaxValue, StencilFrontFuncFunc = GalComparisonOp.Always, - StencilFrontFuncRef = 0, + StencilFrontFuncRef = 0, StencilFrontFuncMask = UInt32.MaxValue, - StencilFrontOpFail = GalStencilOp.Keep, - StencilFrontOpZFail = GalStencilOp.Keep, - StencilFrontOpZPass = GalStencilOp.Keep, - StencilFrontMask = UInt32.MaxValue, + StencilFrontOpFail = GalStencilOp.Keep, + StencilFrontOpZFail = GalStencilOp.Keep, + StencilFrontOpZPass = GalStencilOp.Keep, + StencilFrontMask = UInt32.MaxValue, - BlendEnabled = false, + BlendEnabled = false, BlendSeparateAlpha = false, - BlendEquationRgb = 0, - BlendFuncSrcRgb = GalBlendFactor.One, - BlendFuncDstRgb = GalBlendFactor.Zero, + BlendEquationRgb = 0, + BlendFuncSrcRgb = GalBlendFactor.One, + BlendFuncDstRgb = GalBlendFactor.Zero, BlendEquationAlpha = 0, - BlendFuncSrcAlpha = GalBlendFactor.One, - BlendFuncDstAlpha = GalBlendFactor.Zero, + BlendFuncSrcAlpha = GalBlendFactor.One, + BlendFuncDstAlpha = GalBlendFactor.Zero, ColorMask = ColorMaskRgba.Default, PrimitiveRestartEnabled = false, - PrimitiveRestartIndex = 0 + PrimitiveRestartIndex = 0 }; for (int Index = 0; Index < GalPipelineState.RenderTargetsCount; Index++) @@ -195,6 +197,12 @@ namespace Ryujinx.Graphics.Gal.OpenGL } } + if (New.DepthRangeNear != Old.DepthRangeNear || + New.DepthRangeFar != Old.DepthRangeFar) + { + GL.DepthRange(New.DepthRangeNear, New.DepthRangeFar); + } + if (New.StencilTestEnabled != Old.StencilTestEnabled) { Enable(EnableCap.StencilTest, New.StencilTestEnabled); -- cgit v1.2.3