Repository navigation
Sifu (PPSA03001) #5908
kjhq
started this conversation in
Game bring-up
Replies: 1 comment
|
Linked work:
Furthest point is now the title screen at about 0.5 FPS. Queue 0 still spends about 250-400 µs of CPU per draw; I'm looking at that next. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Existing thread
Title
Sifu (PPSA03001)
Content version tested
01.007.000
AnyPS5 commit
main 8dfaafe, plus the unwrap_self fix linked in a reply below (needed to unwrap the eboot and 36 of the 37 bundled modules)
System tested
Windows 11 (build 26300), MinGW GCC 15.2.0, NVIDIA GeForce RTX 5090 (NVIDIA 610.88)
Furthest point
Logos or loading screen
What is shown
Unreal Engine 4 title. First run: black for about 60 s while about 4,500 shaders are translated; with a warm shader cache the game's own LOADING screen is up by about 30 s.
The loading screen then freezes. About 120 s later Unreal's watchdog fires:
The crash handler then faults in libc (access violation, exit 0xC0000005); that crash is secondary. Audio and input were not tested.
Current blocker
Not a deadlock but graphics queue throughput. With APS5_PROFILE_DRAW=1, queue 0 records about 1,000 draws a second at 0.6-0.9 ms CPU each, about 2 frames a second at about 500 draws a frame. A backlog of 11-35 submissions builds up on queue 0. Async compute (queue 0x20) WAIT_REG_MEMs on labels deep in that backlog for 10-66 s, and flip submissions wait behind them, so RenderThread stalls past the 120 s watchdog.
Most of the per-draw cost is in ShaderResources::PrepareDrawBindings (about 0.5 ms per draw). I am working on that and will link the pull request here.
How it was run
Unwrapped with tools/unwrap_self.py (eboot.bin, sce_module/, prx/); the bundled modules go next to the game data as *.guest.prx.
Relinked with: relinker --windows --registry eboot.elf app.exe
app0 holds the game folder (sifu/), sce_sys/ and ue4commandline.txt. No environment variables were needed to reach the loading screen.
All reactions