Skip to content

Releases: lightning-js/renderer

v2.13.0

26 Feb 20:27
Compare
Choose a tag to compare

Notable changes:

  • Autodetection of createImageBitmap is disabled for startup performance, this can be enabled by the following setting: createImageBitmapSupport - 'auto' | 'basic' | 'options' | 'full' by setting the createImageBitmapSupport value to auto. Otherwise please select the appropriate supported version for your target by setting either basic for no options (chrome v50), options for options support (chrome 52) and full to also include support for cropping (chrome 54 and higher).
  • doNotExceedCriticalThreshold setting will stop uploading new textures if memory is above criticalThreshold

What's Changed

Full Changelog: v2.12.1...v2.13.0

v2.12.1

14 Feb 08:27
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.12.0...v2.12.1

v2.12.0

12 Feb 09:06
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.11.1...v2.12.0

v2.11.1

03 Feb 11:32
Compare
Choose a tag to compare

What's Changed

  • fix: duplicate orphaned texture entries, check for renderable and timing by @wouterlucas in #512

Full Changelog: v2.11.0...v2.11.1

v2.11.0

31 Jan 08:46
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.10.0...v2.11.0

v2.10.0

27 Jan 13:53
Compare
Choose a tag to compare

What's Changed

  • refactor: update texture processing to use time limit instead of item limit by @wouterlucas in #502

Warning:
Config option textureProcessingLimit has been renamed to textureProcessingTimeLimit as batch size is now dynamically determined based on available time in between frames. Default is set to 10 ms.

The textureProcessingLimit got introduced in version 2.9.0.

Full Changelog: v2.9.2...v2.10.0

v2.9.2

27 Jan 11:12
Compare
Choose a tag to compare

What's Changed

  • fix: Exclude Base64 images from image worker handling by @pecoram in #500
  • fix: subTexture in canvas renderer by @pecoram in #501

Full Changelog: v2.9.1...v2.9.2

v2.9.1

23 Jan 21:28
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.9.0...v2.9.1

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