Performance optimization, and fixes some clipping issues. --- src/gallium/drivers/swr/rasterizer/core/clip.h | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/src/gallium/drivers/swr/rasterizer/core/clip.h b/src/gallium/drivers/swr/rasterizer/core/clip.h index 1d336b6..5193672 100644 --- a/src/gallium/drivers/swr/rasterizer/core/clip.h +++ b/src/gallium/drivers/swr/rasterizer/core/clip.h @@ -417,6 +417,7 @@ public: uint32_t slot = index >> 2; uint32_t component = index & 0x3; + typename SIMD_T::Float vCullMaskElem = SIMD_T::set1_ps(-1.0f); for (uint32_t e = 0; e < NumVertsPerPrim; ++e) { typename SIMD_T::Float vClipComp; @@ -430,8 +431,11 @@ public: } typename SIMD_T::Float vClip = SIMD_T::template cmp_ps<SIMD_T::CompareType::UNORD_Q>(vClipComp, vClipComp); + typename SIMD_T::Float vCull = SIMD_T::template cmp_ps<SIMD_T::CompareType::NLE_UQ>(SIMD_T::setzero_ps(), vClipComp); + vCullMaskElem = SIMD_T::and_ps(vCullMaskElem, vCull); vClipCullMask = SIMD_T::or_ps(vClipCullMask, vClip); } + vClipCullMask = SIMD_T::or_ps(vClipCullMask, vCullMaskElem); } return SIMD_T::movemask_ps(vClipCullMask); -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev