From 8e6336d96bf7ee0e31ca51064c85f1b65913fe7a Mon Sep 17 00:00:00 2001 From: Subv Date: Fri, 21 Aug 2015 09:48:43 -0500 Subject: SWRenderer: The stencil depth_pass action is executed even if depth testing is disabled. The HW renderer already did this. --- src/video_core/rasterizer.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/video_core') diff --git a/src/video_core/rasterizer.cpp b/src/video_core/rasterizer.cpp index c768a5eea..696839da6 100644 --- a/src/video_core/rasterizer.cpp +++ b/src/video_core/rasterizer.cpp @@ -888,21 +888,19 @@ static void ProcessTriangleInternal(const Shader::OutputVertex& v0, } if (!pass) { - if (stencil_action_enable) { + if (stencil_action_enable) UpdateStencil(stencil_test.action_depth_fail); - } continue; } if (output_merger.depth_write_enable) SetDepth(x >> 4, y >> 4, z); - - if (stencil_action_enable) { - // TODO: What happens if stencil testing is enabled, but depth testing is not? Will stencil get updated anyway? - UpdateStencil(stencil_test.action_depth_pass); - } } + // The stencil depth_pass action is executed even if depth testing is disabled + if (stencil_action_enable) + UpdateStencil(stencil_test.action_depth_pass); + auto dest = GetPixel(x >> 4, y >> 4); Math::Vec4 blend_output = combiner_output; -- cgit v1.2.3