AnyPS5/core/libs
Dean Galvin a3ffb73309 perf(agc): deliver end-of-pipe interrupts after their work without draining
A RELEASE_MEM with an interrupt select drained the device: the queue
worker submitted everything recorded and waited for the GPU before it
stored the label and delivered the interrupt. PPSA21564 issues about 300
of them per frame, so the worker and the GPU took turns.

The label is now recorded like any other (on the GPU behind the work, or
as a completion action behind pending write-backs), and the delivery
becomes a completion action of the batch holding the work before the
packet (Recorder::AfterRecordedWork, after the batch's earlier
completions). It is counted with the completion labels, so idle workers
and pollers reap it, and it starts the label flush deadline. With draws
or dispatches recorded since the last submit the batch is submitted at
once. A batch holding only label stores stays open and goes out with the
next work, at the label flush deadline, at a wait, at a flip or at the
end of the submission, like any other pending label. A label the GPU
cannot store, or one that does not decode, still drains.

The interrupt so never arrives before the work ahead of it completed and
its label landed; it can only arrive later, by at most the flush
deadline plus the work recorded into the same batch.
2026-10-03 09:56:05 +13:00
..
nid fix: correct sscanf %x signedness and avoid a substr copy 2026-09-26 14:11:50 -06:00
prx perf(agc): deliver end-of-pipe interrupts after their work without draining 2026-10-03 09:56:05 +13:00
tests Merge pull request #308 from asimplestray/feat/shader-vop3-mad 2026-10-02 23:29:05 +03:00
CMakeLists.txt Merge pull request #273 from RomainROCH/codex/fix-save-memory-growth 2026-10-02 22:32:56 +03:00
HitLog.hpp style(prx): apply CONVENTIONS.md to misc PRX additions 2026-09-29 04:24:39 +03:00
SceShaders.hpp feat(libs): libSce types impl + shaders refactor 2026-09-08 10:20:57 +03:00
SceTypes.hpp Merge pull request #300 from Pouare514/feat/libScePlayGoDialog 2026-10-02 23:08:55 +03:00