Skip to content

Fix Steam/GOG slowdown and XR frame pacing - #19

Open
linkazoid91 wants to merge 1 commit into
DR-89:mainfrom
linkazoid91:fix/steam-gog-hid-performance
Open

Fix Steam/GOG slowdown and XR frame pacing#19
linkazoid91 wants to merge 1 commit into
DR-89:mainfrom
linkazoid91:fix/steam-gog-hid-performance

Conversation

@linkazoid91

Copy link
Copy Markdown
Contributor

What this fixes

This change addresses two separate problems that made the game feel much slower
than the frame-rate display suggested.

First, F.E.A.R. has an old input bug that can make performance start well and
then get progressively worse while playing. The existing fix was not being
applied reliably to the tested Steam and GOG versions.

Second, the VR frame-pacing code could wait for another OpenXR frame even when
it already had a fresh one. VDXR could therefore report 90 FPS while the game
still looked and felt much slower.

What changed

  • Recognize the tested Steam 1.08 and March 2025 GOG Preservation executables.
  • Retry the input fix after Steam has finished unpacking its protected game
    code, before DirectInput starts scanning devices.
  • Keep the input patch guarded by exact image sizes and complete byte checks.
  • Wait for a new OpenXR render request only when the current request is a
    duplicate. Fresh requests are rendered immediately.
  • Make the no-capture diagnostic fully bypass capture and transfer work, and
    report the game's raw Present rate.
  • Add development switches for testing without stereo, capture, or XR frame
    pacing.
  • Preserve the user-data path and recognize files from an existing deployment
    during development updates.
  • Document the Steam/GOG investigation and add regression tests.

Safety

The input fix changes memory only while the game is running. It does not edit
FEAR.exe on disk. Both complete code regions must match a verified layout, or
already contain the expected patch, before anything is changed. Unknown game
builds are left untouched.

Existing profiles, settings, and saved games are preserved.

Verification

  • Built successfully for x86 and x64 with RelWithDebInfo.
  • x86 tests: 24/24 passed.
  • x64 tests: 24/24 passed.
  • GOG Preservation 1.08 reported the input fix as applied.
  • Steam Ultimate Shooter Edition 1.08 reported already_applied because the
    post-unpack loader had applied it before DirectInput initialization.
  • Read-only inspection of the running Steam process confirmed both input
    regions were fully patched.
  • Real Steam and GOG VR sessions remained smooth instead of slowing down over
    time.
  • Eleven existing saved games remained present after updating the overlay.

Tested executables

Edition SHA-256
Steam Ultimate Shooter Edition 1.08 D5EBC38A4F12B772C9112A2811C290ADB6C5052D3BC2F817302D38CF55BB2CBE
GOG Preservation Program 1.08 (March 2025) C1678AA4DF37E87C097F45D8EB68A7C379D99AD12D8DA2771CF6235D9493D0B2

Not included

  • A standalone non-VR version of the input fix.
  • Changes to the project's existing EchoPatch compatibility policy.
  • The experimental D3D9 GPU shared-surface bridge.

@linkazoid91
linkazoid91 marked this pull request as ready for review August 8, 2026 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant