Skip to content

Severe in-match render performance regression (38 -> 10 fps) since weekly-2026-05-08 #2856

Description

@bglnelissen

Game: Command & Conquer Generals: Zero Hour (Steam, 1.04 data)

Summary

In-match render FPS drops to ~7-10 while game logic keeps running at full speed (the FPS counter shows e.g. 10[38]). The main menu renders fine (~30 fps). Bisected across the weekly releases: weekly-2026-05-01 is good (38[38]), weekly-2026-05-08 is bad (10[38]), still present in weekly-2026-07-03. The 2026-05-08 changelog is dominated by the heightmap / terrain-draw-size changes of PR #2677, which makes those the prime suspect.

System

  • CPU: AMD Ryzen 7 5700X3D (8C/16T)
  • GPU: NVIDIA GeForce RTX 4080 SUPER, driver 595.71
  • OS: Windows 11 Pro 10.0.26200
  • Display: 3440x1440 ultrawide

Measurements (skirmish, default camera, stock map Alpine Assault)

Build In-match fps counter
weekly-2026-02-20 38[38] (good)
weekly-2026-05-01 38[38] (good)
weekly-2026-05-08 10[38] (bad)
weekly-2026-05-15 10[38] (bad)
weekly-2026-06-05 10[38] (bad)
weekly-2026-07-03 7-10[38] (bad)

While slow: GPU utilization ~2% (nvidia-smi), exactly one CPU core pegged at 100% - the render loop is CPU-bound, the GPU is idle.

Ruled out

  • Renderer: reproduced both on stock Windows d3d8 and through dgVoodoo2 2.87.3
  • Fullscreen and windowed (-win), resolutions from 800x600 up to 3440x1440
  • Fresh Options.ini (all defaults) and custom settings
  • GenTool absent in all measurements above
  • Custom vs. stock maps (both slow on bad builds)
  • Process priority / CPU affinity changes: no effect
  • Ctrl+Numpad+ render-fps hotkey: no effect on bad builds

Reproduction Steps

  1. Steam ZH 1.04 data, any "bad" weekly build of generalszh.exe
  2. Start any skirmish
  3. Observe render fps ~10 while logic fps stays at the game-speed setting

Happy to provide more data (traces, dxdiag) if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions