Release notes

Changelog

Version 1.47.0


Released 07 Nov 2023
FeatureImplemented ResizeObserver API
EnhancementImage-rendering support for border images
EnhancementAdded support for copy and paste in the Elements tab of the Inspector
EnhancementHTML preloading now ignores query parameters from URLs when storing and serving HTML files from the cache
EnhancementAdded support for the new rgb() functional notation syntax
EnhancementThe maximum number of initiators for Recalculate Styles/Layout events defaults to 0 now. That’s because getting the initiators can skew the Inspector performance profiling results. Clients can set the maximum count manually by using the JavaScript engine.setInspectorInitatorsUpperBound(count) function.
EnhancementAdded partial support for keyframe rules to the CSSStyleSheet.insertRule() API
EnhancementThe Player uses the system OpenAL.framework on Mac OS
EnhancementAdded documentation how mouse related behavior works when the mouse is idle
EnhancementUnityAdd IVirtualAllocator implementation for Sony PlayStation
EnhancementUnityAdd IVirtualAllocator implementation for Microsoft Windows and Xbox
EnhancementUnityAdd IVirtualAllocator implementation for Nintendo Switch
EnhancementUnityAdded support for binary messages in WebSocket implementation
EnhancementUnreal EngineRemoved legacy code for controlling OnAssetSaved callbacks for atlases
EnhancementUnreal EngineAdded IVirtualAllocator implementation for Microsoft Windows and Xbox
EnhancementUnreal EngineAdded IVirtualAllocator implementation for Sony PlayStation 5
EnhancementUnreal EngineAdded IVirtualAllocator implementation for Nintendo Switch
FixFixed broken surface partitioning in evaluation builds
FixFixed accumulating memory caused by requestAnimationFrame callbacks
FixFixed assert when trying to draw background image on 0 background size
FixFixed assert for SVG properties passed to style.setProperty
FixFixed parser errors due to HTML tags in CSS comments
FixFixed infinite recursion when specifying default font family as one of the generic font family keywords
FixFixed OnUserImageDropped being called after rendering resources are freed
FixUnityFixed crash when domain reloading is disabled in Unity
FixUnityFixed crash on Xbox when the project quality is set to ‘Very Low’''
FixUnityFixed horizontal scroll touch gestures
FixUnityFixed losing focus on input fields on platforms with virtual keyboards
FixUnityEnsure the proper disposal of the Library params object
FixUnreal EngineAdded low level guard to prevent hitting a potential assert when loading Atlas textures

What’s new

Rendering

Refined luminance calculation

The relative luminance function for color blending is now based on the BT.709 standard, which is used in Firefox and Chrome. Elements in with opacity now look more similar to Chrome and Firefox.

Migration guide

Adjusting luminance calculation in CohColorMixingPS

The relative luminance function in CohColorMixingPS.hlsl has been updated to match the one used in Chrome/Firefox. The current W3C recommendation cites the BT.601 formula and has no mention of the formula, however, the BT.709 formula is used in Chromium for filtering (see RenderSurfaceFilters::BuildImageFilter and GetGrayscaleMatrix). If you would like to retain the old behavior and stay compliant to W3C, uncomment #define LUM_BT601.

Before:

> CohColorMixingPS.hlsl

… float Lum(float3 color) { return 0.3 * color.r + 0.59 * color.g + 0.11 * color.b; } …

After:

> CohColorMixingPS.hlsl

… float Lum(float3 color) { return 0.2126f * color.r + 0.7152f * color.g + 0.0722f * color.b; } …

Pointer Compression on Sony PlayStation 5

Starting with this release, Prysm uses V8 Pointer Compression on Sony PlayStation 5. This feature provides up to 40% memory savings for the JavaScript heap and requires initializing Prysm library with an instance of the IVirtualAllocator. A sample implementation is provided in Modules/Allocators.