Skip to content

perf(runner): host @SGNode test nodes in a persistent offscreen container - #5

Merged
Ramon-Lobo merged 1 commit into
masterfrom
perf/offscreen-test-node-container
Jul 8, 2026
Merged

perf(runner): host @SGNode test nodes in a persistent offscreen container#5
Ramon-Lobo merged 1 commit into
masterfrom
perf/offscreen-test-node-container

Conversation

@Ramon-Lobo

@Ramon-Lobo Ramon-Lobo commented Jul 8, 2026

Copy link
Copy Markdown
Owner

What

@SGNode test nodes were created directly on the scene (testScene.CreateChild) and removed after each suite. With many node suites this churns the scene's live child list once per suite (full re-layout each time) and renders every test subtree.

How

Create the nodes inside a single persistent, invisible Group child of the scene, made lazily on the first node test. The scene's direct children no longer change per suite, and the invisible subtree is skipped by the render pass (isVisible() short-circuit). getScene() and m.global still resolve up through the container, so global-field seeding and render-thread ownership are unaffected.

Idea adapted from rokucommunity#380's offscreen-container concept, isolated from that PR's device-UI changes.

Verified

No behavior change on either lane: cbs-roku full headless suite 1675 pass / 1 fail (unchanged), device --cross-check of @SGNode specs (DynamicLogo, BrandCarousel, Theme) 0 divergent. No wall-clock regression (~87s).

…iner

Each node suite created its test node directly on the scene and removed it after,
churning the scene's live child list once per suite and rendering every test
subtree. Create the nodes inside a single persistent, invisible Group child
instead: the scene is no longer re-laid-out per suite, and the invisible subtree
is skipped by the render pass. getScene()/m.global still resolve up to the scene,
so global-field seeding is unaffected. Verified no behavior change: cbs-roku
headless 1675/1 and device cross-check 0 divergent.
@Ramon-Lobo
Ramon-Lobo merged commit 2775b60 into master Jul 8, 2026
@Ramon-Lobo
Ramon-Lobo deleted the perf/offscreen-test-node-container branch July 8, 2026 23:51
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