mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-14 15:00:30 +02:00
SSE2 has no 32-bit lane multiply, so Vec4S32::Mul is emulated with two pmuludq and shuffles, and the bilinear sampler spent a tenth of its time there. The texel row offsets, the texture functions, fog and blending only multiply values that fit 16 bits, which Mul16 does in one pmaddwd. The bilinear lerp of two channels packed as 16-bit halves uses the new MulHalves (pmullw), which multiplies both at once. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
To get to 100% compatibility, we will need a software renderer as there are games out there that do tricks that can't really be faked in a sensible way. Useful for homebrew too that mix sw and accel rendering.