Repository navigation
EA Sports UFC 6 (PPSA23566) #5996
Replies: 5 comments
|
Your fork also gets UFC 6 in game on Linux (Arch, RTX 5080, GCC 16.2), with two things on top. It doesn't build on Linux as pushed: two size checks in Linux also needs #5955. Without it the title stops at 7 s with With both and your settings: title screen, the roster download dialog, the accessibility screen, then the octagon. That took Cross plus six Down presses to reach CONTINUE. Over the last 400 s it rendered about 1.2 frames per second, and |
|
Awesome work so far, I'm really excited for this! |
|
Memory: why UFC 6 dies with On Windows 11, i5-14600KF, 32 GB RAM, RX 9070 XT, Counting libSceAgcDriver's
With both, the process holds ~9.9 GB (stable), the title screen shows in ~30 s with a warm cache, and the main menu is reachable. That is ~11 presents/s at the title screen; I have not reached a fight yet. Your run peaked at 32 GB of commit on a 64 GB machine, which may be why you never hit this. @0xcrstn your bring-up changes and these memory fixes look complementary; happy to compare notes on performance next. AI-assisted: yes (Claude Code). |
Progress report: memory, title-screen frame time, and a fix for the storage upload path (PR #6197)Setup. Windows 11 Pro (26200), Intel i5-14600KF, 32 GB RAM, AMD Radeon RX 9070 XT (AMD proprietary driver 26.8.1, LLPC), WinLibs GCC 15.2.0, Release + libs, 1. Memory (details in #6139)On @0xcrstn your 2. Where the title-screen frame goes
The GPU would allow ~50 FPS; the frame is bound by queue worker 0x0. Sampling it ( On the fork the worker splits differently: So ~5.1 s of every 10 s went to CPU uploads whose cause is "no import". 3. Why those surfaces have no import
A ~1.8 GB reservation mapped in 8 MiB pages, each on unrelated physical memory, and the engine packs surfaces across page boundaries. Only 82 remaps hit the pool, all during start-up, none once the title screen shows. A temporary diagnostic recording the import refusal of each CPU upload named one cause for all of them: 4. The fix: PR #6197
The big step needs both: #4286's alias hand-over only takes a surface's units on the device when the surface is imported, and here the aliased surfaces were exactly the ones crossing a window. #4286 alone was neutral on Windows (as its author measured); with #6197 it removes most of the storage round trips. On To apply #4286 on your fork: it conflicts in one line of 5. What did not help (so nobody repeats it)
6. Things worth knowing
7. Launch settings used for the fork rows
NextThe worker is still ~88 % busy at 35 ms on the fork. I am looking at the remaining storage round trips and the flip write-backs next, and at host memory use; happy to split the work with you. AI-assisted: yes (Claude Code). All numbers are from runs on this machine. |
|
Data point from a smaller card, on @0xcrstn's fork ( How far: intro fight, then quit to the main menus. Menus render fully (UI, fighters, offline banner) at 2.6–4.4 FPS. Controller works as long as the game window has focus; with another window focused, SDL drops all input, which looked like a hang at first.
Practice mode works: Max Holloway vs Kamaru Usman at the PI octagon, at 5.2–5.5 FPS. That's the fastest I've measured and faster than the menus, which is odd given the timeouts land on character passes. The practice telemetry HUD works and strikes register damage. The fighters render cleanly: tattoos, shorts, sweat/specular and contact shadows all look right. Two intermittent artifacts on fighters: a small white blotch on Usman's left chest/shoulder in one frame, and a black square that sometimes appears over Carlos Prates' groin/shorts area. Both come and go between frames, so maybe a per-frame resource that's sometimes stale, rather than a broken mesh or texture.
Fight Now: loading into a fight from the menus sat on a black screen until I closed it manually, at ~27 GB commit. I didn't wait it out, so I can't say whether it was shader compile or a hang. Memory: stayed at ~10–13 GB commit during startup on the fork, against ~24 GB and climbing on Crash after ~45 min: Windows logged 5× VRAM spill on 8 GB: in Practice mode the device-local budget reported via VK_EXT_memory_budget is only ~5.7 GB, and the driver log shows the overflow going to host memory type 0: up to 8,056 MiB of device buffers and 14,291 MiB of storage textures placed in host memory. On this card a lot of GPU work reads over PCIe, which could be part of why frames take seconds here and submissions get close to the TDR limit. Where the timeouts land: Frostbite's own GPU breadcrumbs, printed with each So mostly fighter skin, cloth, hair and volumetrics, the compute-heavy character passes. That might be a useful lead for whoever is profiling GPU time. Import audit ( Graphical glitch on the PLAY tab: the 2D UI is clean, but the 3D background behind it is flooded with flat electric blue. The fighter bust is broken into blocky tiles of bright yellow, green, magenta and red, with heavy bloom and stray colored pixels on the left. FPS dropped to ~1.4 on that screen. It depends on the selected item, not the tab. The upper PLAY items (PLAY MODES) rendered their background correctly, with Max Holloway shown cleanly. The corruption only appeared once the selection moved down to the EARN, LEARN AND CREATE section (screenshot is on LEARN). The ONLINE tab background (Pereira/Procházka staredown) also rendered correctly in the same session. So it looks tied to the background scene those lower items load, most likely its lighting/post pass. It might be the same family as the "bright cyan crowd/lighting patches" mentioned in the first post.
AI-assisted: yes. |



Uh oh!
There was an error while loading. Please reload this page.
Existing thread
Title
EA SPORTS UFC 6 (PPSA23566)
Content version tested
01.004.000
AnyPS5 commit
Fork commit c222bd2 (ufc6/testing): 0xcrstn@c222bd2 — tested upstream base 84b01f9, plus local bring-up/performance fixes. No upstream PRs opened for this report.
System tested
Windows 11 Pro; Intel i9-13900K; 64 GB RAM; NVIDIA RTX 5090, driver 32.0.16.1742; WinLibs MinGW-w64 GCC 15.2.0 r7, Release + libs.
Furthest point
In game
What is shown
EA SPORTS UFC 6 now reaches an interactive octagon fight on my Windows setup. Fighters, the referee and the tutorial HUD render, and gameplay input works. Performance is still far below playable speed.
The final sampled gameplay minute recorded 127 presents in 61.330 seconds, about 2.07 FPS, with six reporting windows ranging from 1.90 to 2.14 presents/s. This is a late-fight sample, not a whole-match average. I noticed an improvement of roughly 0.2–0.5 FPS compared with earlier runs, but I do not have a controlled before/after benchmark.
Gameplay showcase
These clips come from a separate showcase recording of the same installed build. The measurements below come from the completed validation run. Both attachments were compressed to fit GitHub's 10 MB upload limit.
Real-time — 6 minutes 57 seconds, with game audio. Original timing is preserved; this attachment is a 480p, 10 FPS video export. Its encoding frame rate is not the game's measured FPS.
UFC6-2026-10-14_21-12-55-realtime-github-10mb.mp4
Sped-up — 18.18 seconds, silent, 60 FPS playback. Duplicate pictures were removed and the retained frames retimed, giving roughly 23× average speed-up with variable speed. This is a 720p showcase edit, not native 60 FPS gameplay; the video also carries a burned-in sped-up label.
UFC6-2026-10-14_21-12-55-sped-up-60fps-github-10mb.mp4
Recorded resource usage
These figures come from the completed 14 October 2026, 20:44–20:59 EEST validation run, with the diagnostics and verification settings listed below. They describe observed usage on this machine, not minimum hardware requirements. Memory was sampled every 60 seconds; the final values below were also the highest captured memory samples, so brief peaks between samples may be missed.
Process commit includes GPU-driver mappings; it should not be added to working set or VRAM as an independent physical-memory requirement. Whole-machine RAM usage, hardware CPU/GPU utilization percentages, temperatures and power draw were not captured in this completed run.
What changed
The fork carries the accumulated UFC bring-up and correctness fixes, including memory-coherence and shader-read fixes retained while reconciling upstream changes. The latest combined changes:
The new paths are exercised: 108 pipelines built ahead were subsequently consumed, with no recorded background compilation failures. Sparse copies also occur, but avoid little of the total copying in this workload so far. These counters establish that the paths run; they do not measure each patch's FPS benefit.
The complete run recorded 33,324,722 low-level dirty-set checks with zero disagreements, plus 6,196,738 binding decode comparisons and 12,405,294 stage comparisons with zero differences. Full arena byte verification was disabled, so this is not complete rendering or snapshot-byte validation.
These FPS numbers describe the verification-enabled configuration. Epoch VERIFY retained reference revalidation and reported zero production revalidation skips; this run does not measure the benefit of that early-return path.
The earlier bright cyan crowd/lighting patches were not obvious in the two inspected fight views, and gameplay currently looks good to me. Other cameras and scenes still need testing.
Current blocker
SubmissionManagerPs5::waitForFramefailures with error0x8002003C, despite continued gameplay. The run ended with exit code 0; that does not make it error-free.Release/library builds and 148 selected CTests passed, together with two full recorder configurations. One initial PM4 teardown hang did not recur in 11 repeats; its cause remains unresolved. Some watched-host-import test subcases are unavailable on Windows. Other game modes and a complete match have not been validated.
How it was run
Check out the exact fork commit above, initialize its submodules, and follow the project's Windows build and runtime-layout instructions. Build both Release and
libs, and use--windows --to-intel --registry --module-dir .. Installed AnyPS5 libraries must come from that build. The title's own modules are relinker inputs.The performance/correctness settings used were:
Diagnostics were enabled with
APS5_PROFILE_DRAW=1,APS5_PROFILE_GPU=1,APS5_TRACE_WRITE_TRACKING=1,APS5_TRACE_EPOCH_DIRTY_SET=1,APS5_TRACE_LATE_LABELS=1,APS5_TRACE_HANDLED_FAULTS=1, andAPS5_MEMORY_REPORT=60. Frame capture usedAPS5_DUMP_FRAMES=100000,APS5_DUMP_FRAMES_EVERY=60, andAPS5_DUMP_SCALE=2. A local shader-cache directory was selected withANYPS5_SHADER_CACHE_DIR. The changed compiler fingerprint meant a cold shader-artifact cache, while an existing approximately 463 MiB Vulkan pipeline cache loaded.Honest summary
Interactive gameplay is reached, the reference checks above agree, and there is a small subjective performance improvement. The game is still too slow, frame timeouts remain, and neither a controlled performance gain nor complete graphical correctness has been established. This post shares the exact fork revision for further investigation.
AI-assisted: yes.
All reactions