mirror of
https://github.com/libretro/parallel-dc.git
synced 2026-11-10 17:26:21 -10:00
With the filter on, the game is drawn on the filter's own picture, and a change of size made where the renderer is took the filter down and set it up again: the picture thrown away, the shaders compiled again. The picture was saved round that the long way - what was on the screen read back to main memory, and put back into the filter's new picture, where it was filtered a second time. The filter now has a resize of its own. It keeps its framebuffer, vertices and shaders, gets a texture and a depth buffer of the new size, and what the old texture held is scaled into the new one on the graphics card. Nothing is read back, and what is carried over is the picture as it was before filtering. With that the read-back is no longer used for any change of size in place, and is not called from there. Checked under RetroArch with temporary switches in the core, not in this patch, that turn the filter on, start at 2x and change to 1x at frame 280, while the disc draws only part of the screen: the picture is right after it in every pass on gl and the per-pixel renderer's first on glcore; with the scaling across left out, the rest of the screen is black and the test fails. The headless test passes, and the ordinary live test in every pass on gl and the per-pixel renderer's first on glcore; its second was not run to the end.