mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
1.3 KiB
1.3 KiB
libSceJobManager technical debt
Functional
- JobManager compute sequences submit a separate label write and interrupt for every dispatch instead of batching and rewinding commands encoded ahead. Commands and labels live on the host heap; labels are written as 32 bits and have no GPU import, so the driver drains recorded work before each write. Required command storage uses fixed 104/148/32-byte estimates instead of measuring the current builders. A compute dispatch on a CPU sequence and a failing
sceAgcDriverAddEqEventthrow. - JobManager scheduling state lives on the host heap instead of the caller's block. Blocks smaller than 0x2d8 bytes throw. Worker spin and persistent-thread settings do not affect scheduling. Factory priorities above one and use after sequence destruction throw. Shutdown throws while a compute sequence has work in flight or a caller is blocked in a sequence wait. Worker creation and attribute failures throw where the original does not check.
- The manager omits the
sceRazorCpuJobManager*profiler calls. Sequence and factory vtable order has been checked against original modules, but no title that calls it has been run and PS5 timing equivalence is unmeasured.