Skip to content

1.0.6

Latest

Choose a tag to compare

@flexiondotorg flexiondotorg released this 24 Apr 11:07
ee1dedb

What's Changed

See the blog post post that explain this in more detail:

This release focuses on performance improvements across all systems, particularly benefiting devices with integrated graphics:

  • Removed custom layer batching: Benchmarking revealed LÖVE's native batching was more efficient
  • Implemented canvas pooling: Separate pools for standard and stencil buffers reduce memory allocations
  • Optimized shader effect pipeline: New ping-pong buffer system improves multi-effect rendering
  • Added stencil state tracking: Completes GPU state management for more efficient rendering
  • Improved profiler: Canvas caching for overlays and optimized memory allocation
  • Enhanced FPS display: More accurate calculations with lower performance impact

Benchmarks show an average 3.5% FPS improvement on high-end systems and 12.9% improvement on systems with integrated graphics.

  • perf(render): defer layer sorting until compositing by @flexiondotorg in #23
  • refactor(canvas): optimise canvas creation by @flexiondotorg in #24
  • perf(rendering): optimize layer signature generation with numeric hashing by @flexiondotorg in #25
  • perf(rendering): optimize layer batching with single-layer fast path by @flexiondotorg in #26
  • perf(canvas): implement separate canvas pools for standard and stencil buffers by @flexiondotorg in #27
  • perf(effects): optimize shader effect application pipeline by @flexiondotorg in #28
  • perf(layers): optimize layer signature calculation algorithm by @flexiondotorg in #29
  • perf(renderer): optimize layer batch drawing with hybrid approach by @flexiondotorg in #30
  • perf(rendering): optimize shader state changes with caching system by @flexiondotorg in #31
  • perf(rendering): optimise blend mode state changes with tracking system by @flexiondotorg in #32
  • perf(rendering): implement stencil state tracking system by @flexiondotorg in #33
  • fix(profiler): removes redundant state change counts by @flexiondotorg in #34
  • perf(profiler): optimize memory allocation in getState function by @flexiondotorg in #35
  • feat(profiler): display average FPS by @flexiondotorg in #36
  • perf(rendering): remove layer batching optimizations by @flexiondotorg in #37
  • feat(rendering): reinstate sequential shader effect chaining by @flexiondotorg in #38
  • refactor(rendering): make sharedEffectsTable local to compositeLayersOnScreen by @flexiondotorg in #39
  • refactor(profiler): clean up getState() and remove unused layer properties by @flexiondotorg in #40
  • perf(profiler): optimize overlay rendering with canvas caching by @flexiondotorg in #41
  • refactor(profiler): simplify overlay toggling with unified state management by @flexiondotorg in #42
  • perf(overlay) cache FPS overlay and improve content change detection by @flexiondotorg in #43
  • docs: updates demo descriptions and order by @flexiondotorg in #44

Full Changelog: 1.0.5...1.0.6