From 8db2d37e6454e6de2a3ef2266c84c429eec11531 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Fri, 5 Nov 2021 21:38:13 -0700 Subject: [PATCH] softgpu: Fix depth cull in softgpu. Was improperly skipping cull for positive Z. --- GPU/Software/Clipper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/GPU/Software/Clipper.cpp b/GPU/Software/Clipper.cpp index c0c46764a8..0fc8053e52 100644 --- a/GPU/Software/Clipper.cpp +++ b/GPU/Software/Clipper.cpp @@ -30,6 +30,7 @@ namespace Clipper { enum { SKIP_FLAG = -1, + CLIP_POS_Z_BIT = 0x10, CLIP_NEG_Z_BIT = 0x20, }; @@ -37,6 +38,7 @@ static inline int CalcClipMask(const ClipCoords& v) { int mask = 0; // This checks `x / w` compared to 1 or -1, skipping the division. + if (v.z > v.w) mask |= CLIP_POS_Z_BIT; if (v.z < -v.w) mask |= CLIP_NEG_Z_BIT; return mask; }