Skip to content

Commit b8d4598

Browse files
committed
partially revert f0d6562
GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE was a bad idea, mixing multinv with normal div still causes issues on newer compilers, probably due to precision or float op ordering or something
1 parent aaf0bb5 commit b8d4598

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

Makefile.libretro

-1
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,6 @@ else ifeq ($(platform), ctr)
356356
TARGET := $(TARGET_NAME)_libretro_ctr.a
357357
CFLAGS += -DARM11 -D_3DS -D__3DS__
358358
CFLAGS += -DGPU_UNAI_USE_FLOATMATH -DGPU_UNAI_USE_FLOAT_DIV_MULTINV
359-
CFLAGS += -DGPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE # needed on some compilers?
360359
CFLAGS += -march=armv6k -mtune=mpcore -mfloat-abi=hard -marm -mfpu=vfp -mtp=soft
361360
CFLAGS += -mword-relocations
362361
CFLAGS += -fomit-frame-pointer

plugins/gpu_unai/gpu_raster_polygon.h

+7-7
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ void gpuDrawPolyF(const PtrUnion packet, const PP gpuPolySpanDriver, u32 is_quad
258258
x3 = x4 = i2x(x0);
259259
if (dx < 0) {
260260
#ifdef GPU_UNAI_USE_FLOATMATH
261-
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE
261+
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV
262262
dx3 = ((y2 - y0) != 0) ? (fixed)(((x2 - x0) << FIXED_BITS) * FloatInv(y2 - y0)) : 0;
263263
dx4 = ((y1 - y0) != 0) ? (fixed)(((x1 - x0) << FIXED_BITS) * FloatInv(y1 - y0)) : 0;
264264
#else
@@ -276,7 +276,7 @@ void gpuDrawPolyF(const PtrUnion packet, const PP gpuPolySpanDriver, u32 is_quad
276276
#endif
277277
} else {
278278
#ifdef GPU_UNAI_USE_FLOATMATH
279-
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE
279+
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV
280280
dx3 = ((y1 - y0) != 0) ? (fixed)(((x1 - x0) << FIXED_BITS) * FloatInv(y1 - y0)) : 0;
281281
dx4 = ((y2 - y0) != 0) ? (fixed)(((x2 - x0) << FIXED_BITS) * FloatInv(y2 - y0)) : 0;
282282
#else
@@ -304,7 +304,7 @@ void gpuDrawPolyF(const PtrUnion packet, const PP gpuPolySpanDriver, u32 is_quad
304304
x3 = i2x(x0) + (dx3 * (y1 - y0));
305305
x4 = i2x(x1);
306306
#ifdef GPU_UNAI_USE_FLOATMATH
307-
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE
307+
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV
308308
dx4 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) * FloatInv(y2 - y1)) : 0;
309309
#else
310310
dx4 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) / (float)(y2 - y1)) : 0;
@@ -320,7 +320,7 @@ void gpuDrawPolyF(const PtrUnion packet, const PP gpuPolySpanDriver, u32 is_quad
320320
x3 = i2x(x1);
321321
x4 = i2x(x0) + (dx4 * (y1 - y0));
322322
#ifdef GPU_UNAI_USE_FLOATMATH
323-
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE
323+
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV
324324
dx3 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) * FloatInv(y2 - y1)) : 0;
325325
#else
326326
dx3 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) / (float)(y2 - y1)) : 0;
@@ -583,7 +583,7 @@ void gpuDrawPolyFT(const PtrUnion packet, const PP gpuPolySpanDriver, u32 is_qua
583583
v3 += (dv3 * (y1 - y0));
584584
}
585585
#ifdef GPU_UNAI_USE_FLOATMATH
586-
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE
586+
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV
587587
dx4 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) * FloatInv(y2 - y1)) : 0;
588588
#else
589589
dx4 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) / (float)(y2 - y1)) : 0;
@@ -922,7 +922,7 @@ void gpuDrawPolyG(const PtrUnion packet, const PP gpuPolySpanDriver, u32 is_quad
922922
}
923923

924924
#ifdef GPU_UNAI_USE_FLOATMATH
925-
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE
925+
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV
926926
dx4 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) * FloatInv(y2 - y1)) : 0;
927927
#else
928928
dx4 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) / (float)(y2 - y1)) : 0;
@@ -1307,7 +1307,7 @@ void gpuDrawPolyGT(const PtrUnion packet, const PP gpuPolySpanDriver, u32 is_qua
13071307
}
13081308

13091309
#ifdef GPU_UNAI_USE_FLOATMATH
1310-
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV_FOR_ONE
1310+
#ifdef GPU_UNAI_USE_FLOAT_DIV_MULTINV
13111311
dx4 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) * FloatInv(y2 - y1)) : 0;
13121312
#else
13131313
dx4 = ((y2 - y1) != 0) ? (fixed)(((x2 - x1) << FIXED_BITS) / (float)(y2 - y1)) : 0;

0 commit comments

Comments
 (0)