Preserve shader precompile backoff across starts #800

Closed
monsterlag wants to merge 4 commits from fix/precompile-failure-backoff into main
monsterlag commented 2026-11-08 21:50:30 +00:00 (Migrated from github.com)

The refreshed branch is published at eda9dd9. This PR remains closed; the review and checks below refer to that current-main branch. Hosted CI for the refreshed head awaits reopening.

Two interrupted startup precompiles currently drop the notes and delete their failure marker. Later starts try cached compute programs again even with no notes, so the same startup failure can repeat. Keep a versioned interruption count scoped to the shader-program stamp, GPU, driver, pipeline-cache UUID and the presence of RX_VK_NOOPT. After two interruptions, preserve the notes and use ordinary lazy builds until that identity changes. A completed attempt clears its own marker; legacy markers get one scoped retry.

The refreshed branch is based on main b2765ba6 through a normal merge. Upstream background preparation, parallel program-cache reading and guarded compute creation remain intact. The fixture supplies the current cache-reader dependencies; all eleven original behavior checks are unchanged.

Validation:

  • All eleven native actual-helper/control-prefix/cache-selection checks pass on Windows Clang and WSL GCC with strict warnings.
  • The untouched current-main source compiles, then fails the preserved exhausted-state and repeated-interruption behavior assertions.
  • No game, driver, memory-exhaustion or GPU test was run. This does not establish any reported startup crash's cause. Hosted CI for the refreshed head awaits reopening.
The refreshed branch is published at [eda9dd9](https://github.com/monsterlag/Hookshot/commit/eda9dd95351de41a38ca518e4ebf06ec66d871d5). This PR remains closed; the review and checks below refer to that current-main branch. Hosted CI for the refreshed head awaits reopening. Two interrupted startup precompiles currently drop the notes and delete their failure marker. Later starts try cached compute programs again even with no notes, so the same startup failure can repeat. Keep a versioned interruption count scoped to the shader-program stamp, GPU, driver, pipeline-cache UUID and the presence of `RX_VK_NOOPT`. After two interruptions, preserve the notes and use ordinary lazy builds until that identity changes. A completed attempt clears its own marker; legacy markers get one scoped retry. The refreshed branch is based on main `b2765ba6` through a normal merge. Upstream background preparation, parallel program-cache reading and guarded compute creation remain intact. The fixture supplies the current cache-reader dependencies; all eleven original behavior checks are unchanged. Validation: - All eleven native actual-helper/control-prefix/cache-selection checks pass on Windows Clang and WSL GCC with strict warnings. - The untouched current-main source compiles, then fails the preserved exhausted-state and repeated-interruption behavior assertions. - No game, driver, memory-exhaustion or GPU test was run. This does not establish any reported startup crash's cause. Hosted CI for the refreshed head awaits reopening.
NotRexed commented 2026-11-09 05:30:22 +00:00 (Migrated from github.com)

Closing to keep the queue clear — please rebase on current main and reopen; thanks!

Closing to keep the queue clear — please rebase on current main and reopen; thanks!
Commenting is not possible because the repository is archived.
No description provided.