test(windows): await native progress in surface reclamation - #277
Conversation
The pressure fixture could exhaust its polling attempts while WARP had not completed either queued fence. Wait for native fence events between the two reclamation transitions instead of counting scheduling chances. Keep production reclamation, slot capacity, and concurrency unchanged. A stalled native queue still fails with its fence and slot diagnostics.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change adds Windows fence-progress waiting for GPU surface slots. The abandoned-surface reclamation test uses this helper between limited publication retries. ChangesGPU Surface Progress
Priority: ⬇️ Low — Defer this change because it is limited to Windows GPU-surface reclamation tests and leaves production behavior unchanged. Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to Windows GPU-surface reclamation tests now wait for relevant fence progress instead of repeatedly polling, improving reliability without changing production reclamation behavior. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 2 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
Comment |
The Windows GPU-surface pressure test could fail while both slots had already queued their release fences. Two CI runs reported the same state: no external owners, release queued, and neither producer-ready nor release fence completed. The test's 64 one-millisecond polling attempts made native GPU scheduling part of a reclamation correctness assertion.
The fixture now waits for the relevant native fence event between publication attempts. Three attempts cover the two pending transitions: producer readiness, then abandoned release. The helper never signals a fence, changes a slot state, or flushes the context, so production reclamation must still do that work. A stalled fence fails with its target and slot diagnostics. Production capture behavior, slot capacity, and concurrency are unchanged.
Validation: Windows-target test compilation and Clippy with warnings denied pass. Independent design review passed. Native Windows run 34244453268 passed all 3,998 selected shared tests, 32 capture/input fixtures, allocation contracts, and 1,808 daemon integration tests. The separate Intel macOS fixture failure in that run is reproduced and addressed in #278; this PR changes no macOS code.