Repository navigation
EA SPORTS UFC 5 (PPSA03541) #7239
klosixgaming-arch
started this conversation in
Game bring-up
Replies: 0 comments
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
EA SPORTS UFC 5 (PPSA03541)
Content version tested
01.031.000
AnyPS5 commit
main at 66702f1 (merge of #7060) with the source changes of three open PRs on top and nothing else: #6549 (COPY_DATA to and from GDS), #6563 (MSAA_ENABLE on a single-sample target for rectangle lists; main has been refactored since, so I made the same change in nonTriangleRejection, passing rectangles=true from singleSampleMsaaRejection) and #6572 (PA_CL_CLIP_CNTL CLIP_DISABLE as depth clamp). Without them the title stops, in this order: COPY_DATA about 20 s in, then the MSAA_ENABLE rect list, then PA_CL_CLIP_CNTL.
System tested
Windows 11, WinLibs GCC 15.2.0 (x86_64-posix-seh, ucrt, r7), RTX 5090 (NVIDIA 617.42), AMD Ryzen 9 9950X3D, 3840x2160
Furthest point
Menu
What is shown
The logos play and the main menu comes up, at 312 to 355 presents per 10 s (about 34 fps) for about 6.5 minutes of the log. The player could move past the menu screen. After that the frame rate fell below 1 fps (122, then 2, 1, 1, 1, 6, 6, 6, 6, 4, 1, 7 presents per 10 s from about 390 s) while the game kept moving, and at about 620 s the process aborted. Audio and the controller were not checked separately.
Current blocker
Two things after the menu. (1) The slowdown: the GPU is idle, not busy. In the [present] lines the GPU busy time is 12–31 ms per frame while the idle gaps go from 17 ms (at 34 fps) to 3,488 ms, 10,519 ms, 11,192 ms and 13,296 ms per frame, so the time goes to the emulator side. In the [packets] lines of the slow period DISPATCH_DIRECT takes 6,886 ms for 48 dispatches on queue 0x2d and DISPATCH_INDIRECT 5,440 ms for 32 on queue 0x0 in 10 s (about 140 and 170 ms each), DRAW_INDEX_2 6,835 ms for 15,859 on queue 0x0, and a queue waits 7.9 s for a submission; the [recompile] result memo shows 126 hits against 1,461 misses with 1,295 evictions, and the log reports 823,500 dispatches with 328,232 dispatch-cache evictions. I have not found the cause yet. (2) The abort at about 619 s: "shader 0x114073b400 stage 5: ShaderRecompiler::Recompile: shader info collection failed: interpolation parameter reference is out of range (attribute 0 component 0 mode 0, 0 inputs)", thrown from the videoout presentation path after "Shader 0x114073b400 stage 5 has no artifact prepared at registration for the state of this draw or dispatch; preparing it at use". A pixel shader reads interpolant 0 while the draw state declares no pixel inputs.
How it was run
eboot.bin, Engine.BuildInfo.prx, Engine.Render.Core2.PlatformPs5.prx and sce_module/libc.prx and libSceNpCppWebApi.prx are SELF files; each was unpacked with tools/unwrap_self.py into an anyps5-elf folder (eboot.elf, the two Engine prx, sce_module with the two system libraries). Relink: relinker --windows --windows-diagnostics --trace-imports --registry --sce-module-path --module-dir . /eboot.elf app.exe, with an app0 folder next to app.exe that links Data, Patch, Scripts, sce_sys and library to the dump and holds eboot.bin, package.mft, ampr_emu.index and saveicon.png. Environment: ANYPS5_GPU=5090, VK_LOADER_DRIVERS_DISABLE=dzn, APS5_LOG_TIMESTAMPS=1, APS5_PROFILE_DRAW=1. The first run compiled thousands of shaders (the log counted 8,265 disk-cache misses by about 150 s) and the shader cache for this title reached 21 GB, so the first minutes are slower than a second run.
All reactions