Skip to content

perf(tvos): defer Metal drawable acquisition until drawing - #146

Open
LorenzGit wants to merge 1 commit into
NativeScript:masterfrom
LorenzGit:contrib/tvos-metal-pacing
Open

perf(tvos): defer Metal drawable acquisition until drawing#146
LorenzGit wants to merge 1 commit into
NativeScript:masterfrom
LorenzGit:contrib/tvos-metal-pacing

Conversation

@LorenzGit

@LorenzGit LorenzGit commented Sep 8, 2026

Copy link
Copy Markdown

Align Metal presentation with display-link frame boundaries and preserve the existing iOS presentation path.

Validation

The full Nova Relay game was rebuilt on NativeScript 9.1 / V8 14.9 and tested on a physical Apple TV 4K with an A12 GPU. The signed Release build completed an eight-wave, four-pilot mission at 59.94 FPS (p95 16.717 ms; max 28.197 ms; 11,806 samples), then 65 seconds of 4× spawn stress at 59.94 FPS (p95 16.701 ms; max 19.331 ms; 3,717 samples). Three.js, PixiJS, bloom and sound were active at balanced quality. FPS is 1000 / mean frame interval, excluding the first three seconds and non-playing frames. No graphics/feedback errors were recorded. The owner confirmed physical controller joining/movement, sound and rumble.

The separate pixel diagnostic exposed an ImageData ownership bug, fixed independently in #149. The final benchmark included that fix; this pacing PR remains unchanged.

Reproduce

Revision-pinned reviewer setup builds the companion stack in an isolated workspace. It includes commands, requirements, dependency pins and physical-device limitations. No binary artifacts or private development paths are committed.

This PR contains one commit, b7eab94b94f931ac86dade7f0a84afdd020c5143, changing 3 files against 1fd6ef470dfdfd43b3385fa7ef43feddd1debd06. Its exported patch reproduces the committed tree from a fresh base index.

The source-built runtime was validated in the prepared runtime checkout; companion clones, native helpers, Canvas and clean npm installation were validated in a separate workspace on the same Mac. A second machine and one uninterrupted cold all run have not been tested.

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 9ed48358-8324-459c-a78e-c0eeaa5c0091

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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