Repository navigation
test: log_batch "off" takes the fastest of three; bake tests skip on Windows CI (600 s limit) - #2013
Merged
Merged
Conversation
…e (a loaded runner stalled one past 200 ms) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s over the 600 s limit there (Linux runs them) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
Added: |
pmwork-personal
added a commit
to pmwork-personal/Hookshot-pr
that referenced
this pull request
Nov 11, 2026
hckrman101
pushed a commit
that referenced
this pull request
Nov 11, 2026
## Summary After Vulkan reported a lost window surface, the picture could stop indefinitely. The renderer now retires the old swapchain and retries with a replacement surface after loss during acquire, present or swapchain setup. Closes #1977. ## Technical changes - Drain pending GPU work and retire the old swapchain, views and semaphores before destroying the surface. - Reuse the startup surface factory on retry. Wait for a drawable window, limit surface creation attempts, recheck presentation support and keep startup error messages out of repeated recovery attempts. - Track swapchain generation with deferred frames so an old frame cannot reach a replacement chain even if the driver reuses its handle. - Recheck spare-image capacity after replacement so a 2× deferred pair cannot acquire on a chain that only has room for ordinary presentation. Deferred out-of-date presents also no longer count as shown frames in the overlay or pacing history. ## Validation Current head: `b52079d5`, rebased onto main `49f75dc8` (recorder test ordering fix). All authored commits are unchanged by range-diff. Fresh hosted checks run on this head; the local and native results below remain tied to their earlier tested heads. **Earlier local and native evidence:** Earlier head: `8c6b593d`, rebased onto main `ebbba2ea`. Focused Windows checks: **4 passed / 1 failed**. Swapchain recovery, presentation semaphores, Anti-Lag and the new FPS statistics pass. The recorder check fails its existing destructor negative control on both this head and the exact clean base. Earlier native evidence remains labeled below. - At `cda37c2`, the upstream source suite passed with **323 passed / 0 failed / 24 skipped on Windows** and **337 / 0 / 10 on Linux**. Windows includes the temporary bake skips from #2013. - The Windows and Linux regression fixtures inject surface loss during acquire, present and swapchain creation. They verify resource destruction order, reject deferred frames when the replacement swapchain reuses the old handle, and check recovery with a smaller replacement chain. - Native driver surface loss and Linux gameplay remain untested. <details> <summary>Earlier native smoke test and Linux surface probe</summary> - At `cc80fde` (API 14), a Windows RTX 5070 Ti run logged **6,688 presents** at 2× frame generation with pacing off. The Kokiri scene returned after maximize, restore and minimize, and the game exited normally. - The standalone WSLg probe recreated Vulkan surfaces **8 times on X11 and 8 times on Wayland** using SDL2 and lavapipe. Each replacement supported presentation and returned valid capabilities. The probe did not exercise SDL3 or swapchain presentation. </details> <!-- pr-ci-status --> | Current-head workflow | Result | |---|---| | [Linux AppImage](https://github.com/NotRexed/Hookshot/actions/runs/43022789108) | Needs attention | | [Game-free source regressions](https://github.com/NotRexed/Hookshot/actions/runs/43022789062) | Passed | | [PR title](https://github.com/NotRexed/Hookshot/actions/runs/43022784549) | Passed | | [Windows builder](https://github.com/NotRexed/Hookshot/actions/runs/43022789141) | Passed | <!-- /pr-ci-status -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
tests/test_log_batch.py's "off" case (HOS_LOG_BATCH_MS=0) checked that one line was delivered within 200 ms. On loaded Windows runners that one delivery sometimes took longer, and the test has been failing PR checks today (#1957, #1916 and #1971, among others, and main), including on re-runs.Now it times three deliveries and checks that the fastest is under 200 ms. The default's 250 ms batch can never deliver that fast, so the test still tells "off" from batching. A single stall no longer fails it.
🤖 Generated with Claude Code