Skip to content

fix: diagnose async initialization and verify Windows device lifecycles - #86

Merged
DennisSmolek merged 2 commits into
feat/pathtracer-current-upscalerfrom
audit/windows-cross-device
Oct 7, 2026
Merged

DennisSmolek merged 2 commits into
feat/pathtracer-current-upscalerfrom
audit/windows-cross-device

Conversation

@DennisSmolek

Copy link
Copy Markdown
Member

Raw consumers can dispatch before asynchronous initialization completes, and Windows hybrid-GPU captures could name an adapter other than the rendering device. Add a once-per-instance migration warning and exported UpscalerNotReadyError (UPSCALER_NOT_READY), keep awaited rejections intact, and prevent bare ignored init rejections from adding unhandled errors. MomentsPass now rejects initialization after device loss.

Record actual adapter fields and validate expected vendors. Fix demo 13's resize resource growth by retaining its scene-pass identity and disposing owned targets; update DPR after monitor-scale changes. Preserve persisted pages and close owned browsers through the browser CDP session so Edge relaunches do not leave hung audit processes. Refuse occupied benchmark CDP ports.

Stacked on #85 → #84 → #83. The breaking init contract remains explicit on #83. This PR contains the requested diagnostics, before/after migration guide, Windows cross-device report, and compact evidence. No merge or publication.

Validation:

  • Lint, typecheck, 496 portable tests, library artifact verification and gallery build pass.
  • NVIDIA/Chrome and Intel/Edge: Q12 convergence, all benchmark modes/debug views, exposure readback, scatter/candidate smoke and timing-overhead comparisons.
  • Thirty resize/DPR cycles per GPU keep live resources bounded; a real device without timestamp-query allocates zero query sets.
  • Deliberate early dispatch produces two recognizable errors, one warning and zero encoders before readiness on both GPUs. Correctly awaited unit paths remain quiet.
  • Final guide output visually checked with a single velocity-matrix owner. Initial stress images that violated ownership are excluded from visual claims.

Remaining evidence limits: three r186.1 retains six binding buffers per fresh render-target instance with shared scene materials; this is recorded for upstream lifecycle work. No timing ranking is claimed below the measured noise floors. Physical sleep/resume, AMD/mobile tilers and forced FXC remain untested.

Refs #4, #35, #82. Details: docs/windows-cross-device.md and docs/async-init-migration.md.

@DennisSmolek
DennisSmolek added this pull request to stack #87 October 7, 2026 03:56
@DennisSmolek
DennisSmolek marked this pull request as ready for review October 7, 2026 03:56
@DennisSmolek
DennisSmolek force-pushed the audit/windows-cross-device branch from 8f55bb4 to 90dbdf3 Compare October 7, 2026 03:56
@DennisSmolek
DennisSmolek merged commit 5dd86e7 into main Oct 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant