mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
5970e30ddf
Two cases that could still draw a triangle with precise and native corners: - The rectangle shortcut bypass now needs all four vertices of an axis-aligned textured quad to be dataflow-precise. A quad with only some precise corners, such as a CPU-built sprite with one corner copied from SXY, keeps the shortcut and counts as rect_partial; two triangles would have mixed precise and native corners. R4's facade quads are fully precise (rect_partial 0 in every R4 run). - Under preserve-projection, RTPS now applies the GPU's truncation window itself (pgxp_ppp_accept): an exact projection outside it is not shadowed, the vertex keeps the IR path's shadow, which always agrees, and it draws precise instead of being rejected to native at the GPU (ppp_window_fallback counts these). The exact math is skipped while the hooks record nothing (pgxp_active(): speculative passes). Also: - The prepare_precise_triangle comment no longer claims a native neighbour can only disagree by the sub-pixel fraction. Under preserve-projection it can disagree by up to the window. - gpu_textured_dot_nw_shift_exec_test links with -dead_strip on Darwin, as isc_store_test does. GNU --gc-sections kept it from linking on macOS, so the rectangle cases never ran there. The test now covers no, one and all four precise corners. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>