mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
videos_ only learns about the CSC output, so the texture we actually draw is just an ordinary 512x512 8888 texture whose contents happen to be different every frame: hash, miss, throw it in the secondary cache, rebuild, forever. So track the copy. NotifyVideoCopy marks the destination as video when the source is, and the copy funnels call it: sceDmacMemcpy, sceKernelMemcpy, and the four replaced memcpy/memmove variants. It sits outside their "is either side VRAM" gate, since a RAM-to-RAM copy of a frame is still a frame. Being a video texture also gets it forced linear filtering and keeps it out of texture upscaling, which is what you want for a video either way. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>