mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-14 15:00:30 +02:00
The flare's occlusion result is rendered into every other 16-bit pixel of a palette whose other half is uploaded from memory, then read back as a CLUT. Two things broke it at 2x: - The CLUT8-from-8888 shader depal picked the byte out of each pixel using the scaled texture size, so at 2x it read the wrong byte. It now works in PSP units (from u_texclamp, which it now always gets) and samples the pixel's center, not its edge, which is a render pixel boundary when scaled. - The palette upload was linearly filtered when stretched, blending each 16-bit half with its neighbour. Burnout Dominator joins Ridge Racer in NearestFilteringOnFramebufferCreate. 1x and 3x only worked because their sample points happened to land inside the right texels. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>