Skip to content

v1.4.0-beta

Latest
Compare
Choose a tag to compare
@adamjs adamjs released this 22 Apr 20:46

Website | Chat on Discord!

⚡ Ultralight 1.4.0-beta now available!

We're releasing a public beta build of the 1.4 branch today!

Beyond the usual stability and performance improvements, this release:

  • Adds support for the Linux arm64 platform (minimum arch: armv8-a)
  • Adds a new MiniBrowser tool to help users test and benchmark content on each renderer (see details below)

Porting Notes

If you're porting from 1.3 and are using the Renderer API directly (ie, Renderer::Create()), you should make sure to call Renderer::RefreshDisplay(0) before calling Renderer::Render(). See the API notes for details.

Major Changes Since 1.4-dev-c36080e:

Major Improvements:

  • Finish implementation of GPU renderer (now supported on all platforms)
  • Finish Linux arm64 port (targets the armv8-a instruction set)
  • Improve performance of Windows port (now built via Clang instead of MSVC)
  • Improve rendering performance of AppCore (supports high refresh-rate monitors, uses native platform timers where applicable)
  • Improve Chinese-Japanese-Korean text rendering on Linux
  • Improve scroll animation performance

Major API Changes:

  • Add Monitor::display_id()
  • Add Monitor::refresh_rate()
  • Add Window::EnableFrameStatistics()
  • Add ShowMessageBox()

Major Bugfixes:

  • Fix SSL validation issues on Linux and macOS
  • Fix crash when rendering certain paths
  • Fix rendering issues with with certain SVG and CSS clip-paths
  • Allow history.replaceState() on local file:// URLs
  • Fix missing ulCreateView() symbol in C-API

New MiniBrowser Tool:

  • SDK now includes "MiniBrowser" tool that can be used to test content, compare GPU/CPU renderers, and benchmark performance.
  • Statistics are shown in the title bar during runtime.
    • FPS: Average FPS
    • Render Time: Total time spent performing layout and rendering in WebCore (and immediate-mode CPU rendering)
    • Draw Time: (GPU Only) Total time spent drawing geometry on GPU.
    • Frame Time: Total frame time (includes vsync if enabled)
  • Build script includes experimental feature to embed assets directly in the binary (disabled by default, see tools/MiniBrowser/CMakeLists.txt)

Upcoming Changes:

There are still some things in progress before the final release:

  • Finish Remote Inspector (currently disabled)
  • Fix inset box-shadow rendering (currently broken)
  • Add image-source API to finish implementation of CSS backdrop-filter
  • Add more API to AppCore to support app icons, platform dialogs, drag handles, and automatic bundle generation
  • Reduce binary size (no optimizations have been performed yet)
  • Improve performance (no profile-guided optimizations have been performed yet)