Releases: lightning-js/renderer
v2.13.0
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 thecreateImageBitmapSupport
value toauto
. Otherwise please select the appropriate supported version for your target by setting eitherbasic
for no options (chrome v50),options
for options support (chrome 52) andfull
to also include support for cropping (chrome 54 and higher). doNotExceedCriticalThreshold
setting will stop uploading new textures if memory is abovecriticalThreshold
What's Changed
- 428 dynamic bounds margin by @Drulokia in #467
- GC enhancements by @wouterlucas in #526
- fix: font-size and line-height break on inspector by @pecoram in #525
- Fix renderbounds with RTT chains by @wouterlucas in #529
Full Changelog: v2.12.1...v2.13.0
v2.12.1
v2.12.0
What's Changed
- fix: resolve issues with fetching local assets when serving files from the file protocol by @vonvick in #514
- fix programvalue update for length 4 arrays by @jfboeve in #517
- Expose amount of quads metric by @Drulokia in #508
- feat: expose cleanup feature by @wouterlucas in #520
- Optimize Texture Throttling loading by @wouterlucas in #519
New Contributors
Full Changelog: v2.11.1...v2.12.0
v2.11.1
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
What's Changed
- Fix memory allocations by @wouterlucas in #505
- Improve memory cleanup performance by @wouterlucas in #506
- fix: Unify texture state & subtexture fixes by @wouterlucas in #507
Full Changelog: v2.10.0...v2.11.0
v2.10.0
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
v2.9.1
What's Changed
- Fix #455 incorrect width when using width and contain by @Drulokia in #494
- Changed Anonymous to anonymous by @Drulokia in #495
- Correct width of text ending with space by @Drulokia in #491
- Texture lifecycle improvements by @wouterlucas in #497
- fix: font face descriptors in chrome 38 by @pecoram in #490
Full Changelog: v2.9.0...v2.9.1
v2.9.0
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:
- Introduce Texture Throttling by @wouterlucas in #472
- Refactor isRenderable detection by @wouterlucas in #479
- π¨ Refactor CoreNode Renderability Logic π by @wouterlucas in #476
- fix: added missing check for shader existence by @pecoram in #480
- fix: prevent cleanup of SDF Font Face textures for now by @wouterlucas in #481
- Add render to texture spritemap visual test by @wouterlucas in #485
- fix: deprecate CoreNode.preventCleanup and re-introduce preload option by @wouterlucas in #486
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. π οΈβ‘
- Fixes for Chrome v38 by @wouterlucas in #456
- Simplify ImageWorkerManager initialization by @wouterlucas in #460
- fix: compatibility with chrome 51 by @pecoram in #454
- Update README.md & BROWSERS.md by @wouterlucas in #461
- fix: Origin error when using Image() constructor by @wouterlucas in #469
- fix: safari 9 HTMLImageElement check by @pecoram in #473
Other changes
Fixes
- Correct clipping of children in render-to-texture nodes by @erikhaandrikman in #458
- fix: data attr in inspector not reactive.. by @chiefcll in #462
- fix: new Image texture on Canvas by @pecoram in #470
- fix: radialGradient cache key was using linearGradient by @chiefcll in #474
Features
- feat: Add support for Podman by @wouterlucas in #459
- feat: add optional external canvas for rendering by @wouterlucas in #471
Full Changelog: v2.8.0...v2.9.0
v2.8.0
What's Changed
- Added method to set clearColor during runtime by @Drulokia in #451
- fix: Fix RTT Clipping and improve RTT parent lookup by @wouterlucas in #453
Full Changelog: v2.7.2...v2.8.0