github FelipePrado0/SpartanPort windows-v2.7.0-issue209-test2
Test build issue209-test2 on 2.7.0: CPU report and shader cache A/B (2.7.0-issue209-test2)

pre-release3 hours ago

2.7.0 diagnostics build for #209

This build is 2.7.0 with two small changes. It is not a performance fix: it helps us find why some players feel 2.7.0 is less smooth in combat than the issue209-test1 build.

What changes

  • The CPU report is now written when you leave through the in-game menu. In 2.7.0 and in issue209-test1, "Exit to Desktop" closed the game before Runtime: CPU time by thread was written to last_run.log, so the logs you sent did not have it. Sorry about that.
  • One clock read less per draw on the GPU thread. The shader cache statistics read the clock on every draw (about 150,000 times a second in combat). Now once every 256 draws. Small gain, estimated at 0.2 ms a frame.
  • Everything else is the 2.7.0 build. The launcher still shows v2.7.0.

What we found in your logs

We compared the issue209-test1 and 2.7.0 logs from the same section. Average FPS, frame pacing and the number of slow frames are within the normal difference between two play sessions. In combat both builds show the same pattern: 60 FPS on average, but some frames take 40 ms, and the GPU command thread is busy 100% of the time. The shader cache added in 2.7.0 removed work from that thread (53 ms in a whole session, instead of up to 70 ms of waiting every 5 seconds in issue209-test1).

How to test

  1. Extract spartanport-windows.zip over your current spartanport-windows folder (keeps your saves, settings and shader cache).
  2. Set the engine frame rate and the FPS limit to 60.
  3. Play the same section twice, for at least 5 minutes each time, and close the game from the in-game menu ("Exit to Desktop") each time:
    • Run A: on the launcher's Performance page, "Reuse compiled shaders from disk" on (default).
    • Run B: the same option off.
  4. Copy user/last_run.log after each run, before starting the game again (it is overwritten), and name the copies run-A.log and run-B.log.
  5. Turn the option back on. The next start rebuilds the shader cache once, so expect some stutter in that first session.

Reply on #209 with both logs and tell us which run felt smoother.

Validation

  • Built on Windows 11 (MSYS2 CLANG64). Windows C++ tests and the Python suite pass. The failures are only Linux-only tests that do not build or run on Windows, and they also fail on 2.7.0.
  • Played on a Ryzen 5 5600X + RX 6700 XT limited to 4 cores / 4 threads (affinity 0x55): 59.9 FPS average at 60, minimum 57.2. The CPU report was written on "Exit to Desktop", and saved shaders were read from disk (671 shader variants in 17 ms).
  • Not checked: a real 4-thread CPU, a GTX 1660, and the Linux build.

Don't miss a new SpartanPort release

NewReleases is sending notifications on new releases.