Skip to content

ZachFix v0.2.1

Choose a tag to compare

@h714je h714je released this 20 Sep 10:22
· 39 commits to main since this release

ZachFix v0.2.1

A small diagnostics-focused maintenance release.

This release adds an opt-in D3D9 Resource Lifetime Audit for investigating the original PC port's rare long-session framerate degradation reports. It does not claim to fix that issue yet; the goal is to make future reports actionable without leaving heavy diagnostics enabled for normal players.

What's new

  • Added D3D9 Resource Lifetime Audit under F10 -> Diagnostics.
  • The audit is session-only and is never saved to ZachFix.ini; every game start returns it to OFF.
  • Starting a capture creates a separate collision-safe ZachFix-resource-audit-<timestamp>.log, so evidence is not lost when the normal ZachFix.log is recreated.
  • Samples every 30 seconds include FPS, process memory, handles, GDI/USER objects, thread count, D3D9 texture-memory trend, and created/released/live D3D9 resources by type.
  • Still-live resources retain creation-site attribution, including DP.exe+RVA when available, so suspicious growth can be traced back to a concrete game code location.
  • Audit logs identify the DP build, GPU/driver, and privacy-safe D3D9 backend origin to make native D3D9 vs DXVK comparisons easier.
  • The broader resource hooks are installed lazily only if the audit is actually used. Normal sessions keep the existing production hook surface.

Notes

  • No configuration migration is required from v0.2.0.
  • Normal gameplay and rendering behavior are unchanged when the audit is left disabled.
  • The audit only tracks resources created after recording starts.
  • IDirect3DDevice9::GetAvailableTextureMem() is logged as a trend only, not as exact VRAM usage.

All restoration, controller, save-safety, world, rendering, PostFX, and compatibility work from v0.2.0 remains included.