From fa185693d23d538d250104f276d26385e0e105cb Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Thu, 29 Nov 2018 00:17:40 +0100 Subject: [PATCH] - _mm_rcp_ps may be faster but its precision is too poor --- src/polyrenderer/drawers/screen_triangle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/polyrenderer/drawers/screen_triangle.cpp b/src/polyrenderer/drawers/screen_triangle.cpp index 1323da270..52b9cc1a2 100644 --- a/src/polyrenderer/drawers/screen_triangle.cpp +++ b/src/polyrenderer/drawers/screen_triangle.cpp @@ -528,7 +528,7 @@ void StepSpan(int y, int x0, int x1, const TriDrawTriangleArgs *args, PolyTriang for (int x = x0; x < x1; x += 4) { - __m128 rcp_posW = _mm_rcp_ps(mposW); + __m128 rcp_posW = _mm_div_ps(_mm_set1_ps(1.0f), mposW); // precision of _mm_rcp_ps(mposW) is terrible! if (OptT::Flags & SWOPT_DynLights) {