mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-01 12:45:56 +00:00
4.6 KiB
4.6 KiB
libSceRazorCpu technical debt
Silent stubs
- libSceRazorCpu: capture-controller registration, thread-local capture storage, marker serialization and flushing are not implemented. The host implements only the confirmed uninitialized-profiler path: markers return zero without reading labels, and
sceRazorCpuFlushOccurredreturns false without writing its optional output. - libSceRazorCpu: the entry above covers only the markers and
sceRazorCpuFlushOccurred. Fourteen further calls also return without reading their arguments or recording anything (sceRazorCpuDisableFiberUserMarkersreturns nothing, the others zero). Three of them are imported by the 53 titles run here:
| Call | Titles importing it (of 53) |
|---|---|
sceRazorCpuSync |
1 |
sceRazorCpuPlotValue |
2 |
sceRazorCpuWriteBookmark |
2 |
The other eleven are imported by none of them: sceRazorCpuIsCapturing, sceRazorCpuNamedSync, sceRazorCpuDisableFiberUserMarkers, sceRazorCpuInitDataTags, sceRazorCpuShutdownDataTags, sceRazorCpuTagArray, sceRazorCpuTagBuffer, sceRazorCpuResizeTaggedBuffer, sceRazorCpuUnTagBuffer, sceRazorCpuBeginLogicalFileAccess and sceRazorCpuEndLogicalFileAccess.
- sceRazorCpuFiberLogNameChange, sceRazorCpuFiberSwitch, sceRazorCpuGetDataTagStorageSize, sceRazorCpuGpuMarkerSync, sceRazorCpuInitializeGpuMarkerContext, sceRazorCpuSetPushMarkerCallback, sceRazorCpuSetPushMarkerStaticCallback, sceRazorCpuSetPopMarkerCallback, sceRazorCpuStartCaptureInternal, sceRazorCpuStopCaptureInternal, sceRazorCpuWorkloadSubmit, sceRazorCpuWorkloadRunBegin, sceRazorCpuWorkloadRunEnd (libSceRazorCpu) - give the answers firmware 13.42's libSceRazorCpu.sprx gives while the profiler is not initialized, read from disassembly and not measured on a console, and record nothing: the three marker callbacks are discarded, start and stop capture always return 0x80580000,
sceRazorCpuGetDataTagStorageSizereturns 0, and the rest return 0 (sceRazorCpuInitializeGpuMarkerContextreturns 22 for a null context or one whose first byte is not 1). Once initialized, the console sizes a tag table at 96 bytes per tag and calls the marker callbacks, and the GPU marker context is used; none of that happens here
Unknown function info
- Additional profiling exports - signatures and behavior are unknown. The parameterless
intdeclarations only resolve imports, make no ABI claim and every call throws throughNotImplemented_nid_no_patch. Names and NIDs are from the 13.60 inventory; not measured on a console.
| Name | NID |
|---|---|
sceRazorCpuUserSignalWaitBegin |
7y2mIfBZO+I |
sceRazorCpuUserSignalPost |
9qdtVVdPT-0 |
sceRazorCpuWriteBookmarkEnd |
Ay3X-hss71o |
sceRazorCpuUserSignalWaitEnd |
C0QNDdQW+8M |
sceRazorCpuWorkloadRunBeginEx |
Crha9LvwvJM |
sceRazorCpuUserSignalPostEx |
cKl+d8u8mbk |
sceRazorCpuUserSignalWaitBeginEx |
lC8-7cVnkHA |
- sceRazorCpuInitializeInternal (libSceRazorCpu) - throws: in firmware 13.42 it is the only call that sets the profiler's initialized flag, after it creates the capture storage, a mutex and a registered callback, and the capture paths that flag enables are not implemented. Its signature is unknown
- sceRazorCpuJobManagerDispatch, sceRazorCpuJobManagerJob and sceRazorCpuJobManagerSequence: argument positions and serialized widths are recovered from machine instructions. Dispatch takes seven arguments, including two 64-bit payloads whose upper 16 bits are replaced by the count fields. The payloads are not dereferenced, so their original pointer-versus-integer types and the semantic names of the event identifiers remain unresolved. Job and Sequence serialize 16-bit identifiers and an event selector; their source enum names are unavailable.
- sceRazorCpuFiberLogNameChange, sceRazorCpuFiberSwitch, sceRazorCpuGpuMarkerSync, sceRazorCpuStartCaptureInternal, sceRazorCpuStopCaptureInternal, sceRazorCpuWorkloadSubmit, sceRazorCpuWorkloadRunBegin, sceRazorCpuWorkloadRunEnd (libSceRazorCpu) - do not read their arguments while the profiler is not initialized, so their signatures (including that of
sceRazorCpuGpuMarkerSync) are unknown and they are declared without parameters