Skip to content

Releases: lightning-js/renderer

v2.9.0

15 Jan 11:18
Compare
Choose a tag to compare

What's Changed

Feature: Texture Throttling 🚀🎨

Lightning 2.0 introduced the concept of "throttling" texture source creation (and inherently texture creation itself). This was designed to reduce strain on devices with limited pipelines for uploading data from the CPU to the GPU, as well as to limit the number of network requests per frame.

Prior to this feature, L3 would download texture sources and create GPU textures at the end of the rendering pipeline without any mechanism to control how many textures were created at once. In L3 2.8.0 and earlier, if you created 10k nodes, the system would attempt to spawn all 10k nodes in a single frame. While this might work smoothly on desktop Chrome devices with abundant resources, it quickly becomes a bottleneck on embedded devices with limited resources and much lower bus speeds/bandwidth.

Texture throttling introduces a queueing mechanism to regulate the number of texture sources being created/downloaded and textures being uploaded to the GPU. By default, this is set to 0, meaning the entire queue will be processed at once. This value can and should be configured per device or deployment by the consumer of the renderer for optimal performance. 🛠️🎛️

Related PRs:

Compatibility Changes 🔄🌐

Lightning 3 faced some shortcomings on Chrome v38 due to incomplete ImageData implementations in the browser, issues with Uint8ClampedArray, and differences in the createImageBitmap signature across Chrome versions v51/52/54. 🖥️🧩

The updates below resolve compatibility with Chrome v38 for color textures 🖌️🎨 and introduce a createImageBitmap fingerprinting mechanism to ensure the most optimal path is used. 🛠️⚡

Other changes

Fixes

Features

Full Changelog: v2.8.0...v2.9.0

v2.8.0

22 Nov 08:50
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.7.2...v2.8.0

v2.7.2

20 Nov 12:56
Compare
Choose a tag to compare

What's Changed

  • fix issue when running canvas renderMode by @jfboeve in #450

Full Changelog: v2.7.1...v2.7.2

v2.7.1

15 Nov 11:09
Compare
Choose a tag to compare

What's Changed

  • fix(inspector): top left calculated with mount by @pecoram in #445
  • fix: added missing error messages by @pecoram in #446
  • fix: change ColorTexture to use Uint8Array instead of ImageData by @wouterlucas in #449

Full Changelog: v2.7.0...v2.7.1

v2.7.0

13 Nov 12:47
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.6.2...v2.7.0

v2.6.2

07 Nov 10:55
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.6.1...v2.6.2

v2.6.1

06 Nov 15:25
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.6.0...v2.6.1

v2.6.0

05 Nov 11:58
Compare
Choose a tag to compare

What's Changed

  • Global strictBounds configuration value (default: true) by @wouterlucas in #424
  • Prevent recursive RTT updates between parent & children by @wouterlucas in #431
  • Fix bound calculation when clipping is enabled by @wouterlucas in #423
  • fix: [Inspector] drop Proxies, set selective Object.defineProperties traps by @wouterlucas in #432

Full Changelog: v2.5.1...v2.6.0

v2.5.1

29 Oct 14:18
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.5.0...v2.5.1

v2.5.0

28 Oct 17:56
Compare
Choose a tag to compare

What's Changed

  • fix: this.inspector always null by @chiefcll in #417
  • Resolved sans-serif font issue for firefox browser by @jfboeve in #418
  • Fixed LinearGradient/RadialGradient effect for DynamicShader by @jfboeve in #419
  • Fix ZWSP word break & seperate Font caches by @wouterlucas in #420

Full Changelog: v2.4.0...v2.5.0