protonscr

Zenless Zone Zero - CPU main thread bottleneck / ~50 FPS ceiling on AMD Radeon 780M (Phoenix APU)

protonclosed
ValveSoftware/Proton#10123 · opened 2026-09-06 by xh3sh · updated 2026-09-06 · 1 comments · github
Xxh3sh 2026-09-06 github

Compatibility Report

  • Name of the game with compatibility issues: Zenless Zone Zero
  • Steam AppID of the game: /

System Information

steam-zzz-log.zip

  • Proton version: Tried both Proton-GE and proton-cachyos-11.0-20260703 (Steam Linux Runtime), same result on both

I confirm:

  • [ ] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

(Note: I am aware of #8951, which reports abnormally high CPU usage on this game under Wine. Opening a separate report because the symptom here is different and more specific - a hard FPS ceiling with GPU headroom unused, on integrated rather than discrete GPU - but flagging the overlap in case a maintainer wants to merge them.)

Symptoms

FPS sits flat around 50, regardless of:

  • graphics quality settings (Low through High, all tested)
  • native vs non-native resolution
  • in-game frame limiter (set to 60, no vsync)
  • DXVK_FRAME_RATE=0
  • wrapping the launch in gamescope
  • which Proton build is used (see above)

At native resolution (1920x1200 @ 60Hz), GPU clock does ramp up (observed up to ~2673MHz on pp_dpm_sclk) and GPU load sits around 73% - so it's not simply idling at a low power state. FPS stays at ~50 regardless.

Ruled out via direct testing (no effect on FPS):

  • ACPI platform_profile (balanced vs performance)
  • power-profiles-daemon / cpufreq EPP (balance_performance vs performance)
  • GameMode (confirmed active via LD_PRELOAD)
  • lactd stopped (to rule out it fighting for SMU control)
  • multiple kernels
  • gamescope
  • different Proton builds (GE-Proton and proton-cachyos)

Control test: forced Unigine Heaven (owned via Steam) to run through the same Proton-GE instead of its native Linux build, DirectX11 render mode, same native resolution. Result: FPS ranges naturally with scene load - average 63.4, min 8.7, max 118.3 - with GPU clock reaching the full ~2700MHz under heavier load. So Proton-GE + DXVK + amdgpu on this specific APU scale normally under real GPU load; the flat ~50 ceiling seems specific to this game.

Hypothesis & profiling data:
- top -H shows the game's main thread is pegged at ~95–98% CPU of a single core, while worker threads hover
around 10–15%.
- perf stat on the main thread shows an IPC of ~0.64 with ~21% stalled-cycles-frontend and ~28% cache-miss rate,
consistent with instruction-fetch latency on the large 522MB GameAssembly.dll (IL2CPP) under Wine translation.
- Increasing CPU core clock from 3.3 GHz to 4.5 GHz via platform profile does not change FPS, confirming the
bottleneck is memory-latency/translation bound rather than raw compute or GPU.

Reproduction

  1. Launch Zenless Zone Zero via Proton (GE-Proton or proton-cachyos), any launch options.
  2. Enter the open world or combat, stand still or move freely.
  3. Observe FPS via MangoHud or DXVK_HUD=fps,frametimes,gpuload - it sits at ~50 regardless of scene complexity, movement, or any settings change above.
  4. For comparison, run Unigine Heaven through the same Proton build in DirectX11 mode - FPS scales normally with scene load instead of sitting flat.
Kkisak-valve maintainer 2026-09-06 github

Hello @xh3sh, we're using one issue report per unofficially supported game title, so I've gone ahead and transferred this issue report to https://github.com/ValveSoftware/Proton/issues/8951#issuecomment-5559699751.

Launch options

Upstream links

DLLs