diff options
author | Subv <subv2112@gmail.com> | 2015-08-21 09:48:43 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2015-08-21 09:48:43 -0500 |
commit | 8e6336d96bf7ee0e31ca51064c85f1b65913fe7a (patch) | |
tree | 0ec894d5bda08780179968a3fc82a146574c6a7c /src | |
parent | e74825e3d09c924f03ff63408bccefbccab19bae (diff) |
SWRenderer: The stencil depth_pass action is executed even if depth testing is disabled.
The HW renderer already did this.
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/rasterizer.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
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<u8> blend_output = combiner_output; |