Skip to content

Rework SafeTimespanGuarantor and fix issue where exiting XR can get stuck for random amounts of time#1

Merged
bghgary merged 7 commits into
bghgary:big-refactorfrom
ryantrem:big-refactor
Mar 2, 2021
Merged

Rework SafeTimespanGuarantor and fix issue where exiting XR can get stuck for random amounts of time#1
bghgary merged 7 commits into
bghgary:big-refactorfrom
ryantrem:big-refactor

Conversation

@ryantrem
Copy link
Copy Markdown

@ryantrem ryantrem commented Mar 2, 2021

No description provided.

@bghgary bghgary merged commit a9c6f0c into bghgary:big-refactor Mar 2, 2021
bghgary added a commit that referenced this pull request May 1, 2026
Folds in the cross-team meeting on 2026-04-30 and the actual frame-graph
design landing in Babylon-Lite PR BabylonJS#63.

Major changes:

- Reframed deliverable: "don't preclude" as the outcome, prototyping as
  the means. Phase-0 prototypes feed the real plan.
- §2 rewritten against the real FG code on the PR branch (no more
  "assumed"). Documents the Task interface, FrameGraph as a polymorphic
  dispatcher, and RenderPassTask substance.
- §4 S0a split into S0a-narrow (orchestration only — low-value) and
  S0a-wide (native RenderPassTask — the real prize). Added S0d
  (Sergio's middle-seam: custom JS↔C wire, scope beyond rendering).
  Removed S9 (do-nothing was a non-decision, not a seam).
- Renderable / DrawBinding promoted to co-equal seam with Task.
- U2′ marked partly obsolete (FG already pluggable in spirit). Added
  U7 (no WebGPU types in public API — DK already pushing on PR BabylonJS#63),
  U8 (keepCPUCopy flag), U9 (encoder as parameter to Task.execute).
- New §5a Custom-task authoring story (Ryan's concern).
- New §5b Profiling baseline — the missing data point. Phase-0 spike #1.
- Phasing reordered to put profiling first.
- Trade-off table updated for S0a split, S0d, S3 co-equal status.
- New §A Meeting notes (per-participant stances, key threads, decisions).
- New §B Frame-graph PR BabylonJS#63 — what landed (architecture + native
  implications + DK's review).
- New §C Dawn binary-size analysis with concrete per-platform numbers
  (8–15 MB stripped single-arch) and a Lite-specific assessment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bghgary added a commit that referenced this pull request May 26, 2026
BJS PR #18506 created new snippet revisions that return `Promise<Scene>`
so the test framework can properly await async setup:
- `#YS93KY#1` Load GUI snippet with unicode
- `#ERVGT5#1` Parse GUI json with unicode

Switching BN to those revisions makes the `replace` workaround
unnecessary, and the `guiIsReady` gate I had ported from the old BJS
runner is no longer needed either (BJS dropped it in the same PR).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bghgary added a commit that referenced this pull request May 28, 2026
The #1 revisions of these snippets return Promise<Scene> for proper
async await, but BN hits a bgfx dynamic-texture blit race on Win32 D3D11
and Ubuntu OpenGL that causes the GUI to render with stale content on
the first capture frame. The race is separate from the snippet contract
and is being addressed in a separate PR (either via the threading model
rework or an immediate-blit fix in NativeEngine).

Reverting to the #0 snippets with the historical renderCount:50 buys an
extra ~50 frames of rendering before capture, which masks the race. Once
the proper fix lands, this commit should be reverted to put us back on
the #1 snippets without renderCount.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

2 participants