mirror of
https://github.com/libretro/parallel-gx1.git
synced 2026-11-07 04:26:01 -10:00
On OpenGL and Direct3D 11, and on Vulkan and Direct3D 12 in single core, the GPU loop runs inside retro_run, and a run after one that ran out of time catches up on two fields: both presented, and the frontend's video_refresh was called twice in one run. A picture drawn or handed over on the hardware is now reported once, at the end of the run, the last one drawn, as the threaded outputs already did. Direct3D 11 version 1 is the exception, as the frontend reads its texture inside the callback: that output reports at once, the first picture of a run, and drops a second. So do pictures in memory (software rendering). What the output hands over in place, the XFB texture itself, may have been read in a layout of the core's own since it was presented, as a copy's source say: before the frontend is told, it goes back to the one the frontend reads it in, as it already did before a repeat (FrameOutput::KeepReadable, which Repeat was).