Skip to content

chore(deps): bump @lightningjs/renderer to 3.7.0 - #149

Merged
RuudBurger merged 2 commits into
mainfrom
ruud/renderer-3-7
Oct 15, 2026
Merged

RuudBurger merged 2 commits into
mainfrom
ruud/renderer-3-7

Conversation

@RuudBurger

Copy link
Copy Markdown
Member

Bumps @lightningjs/renderer from 3.1.1 to 3.7.0 and re-ports our patch. Frames are cheaper (Plex Home in headless Chrome, 6 runs per cell, old and new alternated): renderer frame median 4.1 to 3.4 ms at 4x and 6.1 to 5.0 ms at 6x held scroll, p95 15.0 to 10.8 ms, gl.uniform calls per frame 1010 to 75, draw calls per frame 216 to 186, bindTexture -36% in held scroll. The machine was loaded by other benchmarks while this ran, so read it as a direction.

Two commits

  • the bump: both catalogs, the patch renamed to 3.7.0. All three of our hunks (empty clip intersection, markChildrenWithRTT, stencil radius clamp) are still needed and apply, plus one new one for the animation regression below. No API changes were needed in react-lightning, react-native-lightning, the plugins or components.
  • reanimated: runAnimationProgram called stop() on a finished controller on cancel. Since 3.1.2 animation objects are pooled, so that object can already be running another animation. Test fails without the fix.

The animation regression (the new patch hunk): since 3.1.2 AnimationManager.update walks the list backwards with swap-remove, so two animations on the same property that end in the same frame leave the older value on screen. On Home that froze the UltraBlur background on the previous row's colors in 3 of 3 runs, 3.1.1 and the patched build updated in 3 of 3. The patch removes in order and compacts after the loop, same O(n) per frame. Should go upstream too.

Things to know

  • Held scroll draws more frames (+21% at 4x, +42% at 6x), probably the new maxTextureUploadsDuringAnimation default of 1. Smoother, but images may pop in later.
  • SDF text now re-uploads about 120 KB per scroll frame.
  • The alpha, clipping, color and src setters still don't skip unchanged values, so the guard in LightningViewElement stays.
  • No new browser APIs. dist is ES2022 like 3.1.1 and transpiles to chrome57 the same way, queueMicrotask is used the same 8 times (same polyfill need below Chrome 71). OffscreenCanvas canvas text is behind a typeof check with a fallback.
  • Not checked on a TV (webOS 5, Tizen 5.x, X1).
  • The Plex app has its own bigger renderer patch, it needs the ported version and a fix in ImageComponent.lng.tsx (a kept fade controller can pause an unrelated animation after a recycle). That's a follow-up in the app repo once this is released.

@RuudBurger
RuudBurger merged commit 996aeb4 into main Oct 15, 2026
1 check passed
@RuudBurger
RuudBurger deleted the ruud/renderer-3-7 branch October 15, 2026 14:47
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