mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-22 02:39:05 +02:00
Hardware transform does the matrices on the GPU, software transform on the CPU, and their depths differ by a few ulps on 40-90% of pixels. That's enough to fail an equal-depth GEQUAL test where a frame mixes the two, which happens to draws that cross the near plane on GPUs without cull distances: DBZ Tenkaichi Tag Team's outlines, Naruto Ultimate Ninja Impact's grass over the ground. Both paths end in the same vertex shader code, so snapping there makes them agree: screen Z to 1/8 (whole units break a decal in Star Wars Lethal Alliance) and W to 16 significant bits. W is left alone without integer ops. On the framedump set with Mac Vulkan: DBZ 3198 -> 77 px off the PSP, Naruto 3243 -> 906, Monster Hunter 792 -> 21, FF Type-0 559 -> 0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>