Skip to content

v0.6.10 — Less GPU work under Vulkan

Latest

Choose a tag to compare

@YuutaTsubasa YuutaTsubasa released this 09 Oct 12:12
56ac2a1

Changes

  • Less GPU work under Vulkan (#92): shaders used to read their constants through buffer addresses, which a phone GPU's shader compiler cannot load once per draw, so every vertex fetched them again from memory. They now come from uniform buffers bound per draw. On an AYN Thor (Snapdragon 8 Gen 2), the GPU time per frame in a race fell from about 14.8 ms to 10 ms. The race's frame rate is now limited by the game's CPU side, so the GPU has room to spare.
  • Shader packs: the Vulkan shaders changed (shader ABI 11). Packs and pipeline lists from earlier versions are not used by this one; the release includes new ones. The first start on Vulkan prepares its pipelines again.

Validation

  • AYN Thor, alternating runs of the same race against v0.6.9: GPU time per frame 9.8 and 10.3 ms against 14.7 and 14.8 ms. The frame rate was the same, 54.4 and 55.4 fps against 56.2 and 55.5 fps with frame metrics on. In the first run, the race went differently from the other runs (the racer stopped in a tunnel) and frames were slow there with little GPU work. That did not happen again.
  • This release's Android 10+ APK on the Thor: all 455 Vulkan pipelines prepared, 57.3 fps while racing without frame metrics. A build of the same code without the pipeline lists ran at 58.9 and 57.4 fps.
  • Rendering: the same on the Thor and on desktop Vulkan.
  • Unit tests: CTest passed on Windows (144) and Linux (136); GitHub Actions builds passed (Windows, Linux, macOS, Android).
  • Windows package: completed race checks on D3D12 and Vulkan, every pipeline prepared (465 and 455) and the save left unchanged.
  • Linux package: passed a Vulkan startup smoke test in WSL (all 455 pipelines prepared).
  • Android: the APKs keep the existing signing certificate.

Downloads

  • Windows x64: download and extract the Windows ZIP; run FreeRidersRecompiled.exe.
  • Linux x64: download and extract the Linux archive; run FreeRidersRecompiled.
  • Android 10 or later: prefer android10-arm64.apk.
  • Android 9: use android-arm64.apk.
  • Android version code: 35. The companion licence archive applies to both APKs.
  • Checksums: SHA256SUMS.txt.

Use your own game disc image. No game data, private saves or test overrides are included.

Known limitations

  • Measured on one phone: the GPU change has been measured only on an AYN Thor (Adreno 740). If Vulkan is slower than in v0.6.9 on your device, or shows wrong graphics, please tell us.
  • Being investigated: the start-up crash on Vulkan 1.1 phones (Issue #88; waiting for a report on v0.6.8 or later); a crash at start on a Galaxy Tab A9 (Mali-G57, Issue #1); a crash in a race on a 4-core PC (Issue #64); a character occasionally saying a winning line after losing (Issue #47).
  • Relay Race: 2P vs 2P is not supported yet.
  • From v0.5.0: lighting has not been compared with the Xbox 360; no camera motion inference on Linux or Android; performance varies by device.