Files
LibretroAdmin 6516f15e04 GS/SW: the rasterizer job queues park without the process-wide barrier
A rasterizer worker is fed a job a draw by the GS thread and drains
them faster than they come, so it parks many times a frame, and each
park on the asymmetric eventcount is a process-wide barrier: 157 a
frame on a game in play. The asymmetric protocol spares the EE a
locked instruction a GS packet; here the producer is the GS thread
and a locked increment a draw is nothing against the barriers. The
eventcount gains a symmetric init, and the job queues use it: a park
is a kernel wait and no more. MTGS and MTVU are as they were.

200 frames of the game on the software renderer, twice each: 157
barriers a frame become 19, wall 10.2 and 9.7 s become 9.3 and 9.1,
CPU 17.1 and 16.3 s become 15.7 and 15.3.

tests/spsc worksema: the producer/worker contract on the symmetric
pair too, plain and under TSan.
2026-11-05 17:36:29 +01:00
..