SWRenderer: The stencil depth_pass action is executed even if depth testing is disabled.
The HW renderer already did this.
This commit is contained in:
parent
e74825e3d0
commit
8e6336d96b
1 changed files with 5 additions and 7 deletions
|
@ -888,20 +888,18 @@ static void ProcessTriangleInternal(const Shader::OutputVertex& v0,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pass) {
|
if (!pass) {
|
||||||
if (stencil_action_enable) {
|
if (stencil_action_enable)
|
||||||
UpdateStencil(stencil_test.action_depth_fail);
|
UpdateStencil(stencil_test.action_depth_fail);
|
||||||
}
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (output_merger.depth_write_enable)
|
if (output_merger.depth_write_enable)
|
||||||
SetDepth(x >> 4, y >> 4, z);
|
SetDepth(x >> 4, y >> 4, z);
|
||||||
|
}
|
||||||
|
|
||||||
if (stencil_action_enable) {
|
// The stencil depth_pass action is executed even if depth testing is disabled
|
||||||
// TODO: What happens if stencil testing is enabled, but depth testing is not? Will stencil get updated anyway?
|
if (stencil_action_enable)
|
||||||
UpdateStencil(stencil_test.action_depth_pass);
|
UpdateStencil(stencil_test.action_depth_pass);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
auto dest = GetPixel(x >> 4, y >> 4);
|
auto dest = GetPixel(x >> 4, y >> 4);
|
||||||
Math::Vec4<u8> blend_output = combiner_output;
|
Math::Vec4<u8> blend_output = combiner_output;
|
||||||
|
|
Loading…
Reference in a new issue