Release notes
What’s new
Content Development
Player CLI improvements
The Player command line arguments have had a complete overhaul. They now support several new things:
- Viewing all command line arguments through
--help
. - A lot of previously hidden command line arguments have been made public.
- All player command line arguments can now be set through a config file, using
toml
syntax. - All command line arguments are now more flexible in terms of syntax, for example accepting
--arg value
,--arg=value
,--arg="value"
, etc.
WebP images support
Prysm can now load and use images with WebP format. The support is limited to simple images without filters and animations.
Unreal Engine
Custom Effects feature support for UMG Widgets
The Custom Effects feature can now be used with UMG Widgets, which includes both HUD Widgets, and Widgets attached to an Actor as a component.
Multi Touch support for UMG Widgets
The MultiTouchEventsHandling
option of the UMG Widgets indicates whether Touch events (Touch Down, Touch Move and Touch Up) should be gathered and handled by the UI together at the end of the Input frame or separately - one by one.
Please note that Multi Touch events handling will have a side effect on the input propagation as we can no longer check whether the UI handles every single touch or not, because events are processed later in bulk.
Migration guide
Pixel Shader Changes
Changes in shaders
If you rely on custom shaders, the pixel shader additional flags in CohCommonPS.ihlsl
should be updated with the following new values:
static const int PSAF_GammaTextureSpace_0 = 0x10;
static const int PSAF_GammaTextureSpace_1 = 0x20;
The newly introduced flags PSAF_GammaTextureSpace_0
and PSAF_GammaTextureSpace_1
specify whether the shader should manually perform a Linear-to-sRGB color space conversion for texture slots txBuffer
and txBuffer1
, respectively. This conversion is intended to be applied after sampling textures that store color information, rather than non-color data such as signed distance fields. For example:
float4 source = SAMPLE2D(txBuffer, input.Additional.xy);
if (IS_SET(int(perCommandData.y), PSAF_GammaTextureSpace_0))
{
source.rgb = LinearToSRGB(source.rgb);
}
...
float4 source1 = SAMPLE2D(txBuffer1, input.Additional.xy);
if (IS_SET(int(perCommandData.y), PSAF_GammaTextureSpace_1))
{
source1.rgb = LinearToSRGB(source1.rgb);
}
Player CLI improvements
The Player config file is now in toml
format (previously json
) and all command line arguments are now configurable through it (previously, only coui-root
and fonts were configurable). The Player’s default Config
file is already converted to the new format and does not require changes. However, if you had any custom changes to your Config
file, they would need to be ported to the new toml syntax.
An example on how to use the new coui-root
and font registration, see the Player’s provided Config file, which can be found at <package_root>/Player/Config.toml
.
Separating Mobile and PC packages
Introducing new Mobile packages
We’ve removed the Android and iOS libraries and samples from the common packaging, thus significantly reducing the size of the Prysm PC packages.
By splitting them into a separate Mobile package, we make sure you can download only what you need. From now on, you can treat the new Mobile packages in the same way you treat the console packages.
This is done for all of our package types, namely:
- Native fragments
- Unity 3D UPM packages
- Unreal Engine zips and installers
Changelog
Version 1.67.0
Released 06 Jun 2025
API | Added linear to sRGB color space conversion in shaders |
Feature | Added support for pathLength attribute on SVG paths. By using a user defined length for the path, stroke-dasharray and stroke-dashoffset can be animated using only CSS as a percentage from the path length. |
Feature | Added support for WebP images |
Feature | Added support for the CharacterData.after and CharacterData.before DOM methods |
Feature | Added support for the part pseudo-class and the exportparts attribute |
Feature | Added --help command line argument for the Player application to list all available options |
FeatureUnity | Added support for .Net objects to be used as models for the data binding in the Unity3D integration |
FeatureUnreal Engine | Added Custom Effects support for UMG widgets |
Enhancement | Optimized text shadows rendering. The default size for the shadow cache is reduced from 8 to 1 to save GPU memory. A performance warning has been added to indicate when the cache is full |
Enhancement | Moved the computation of blur weights to the GPU to improve CPU performance |
Enhancement | SIMD instructions are now utilized in the rendering library to improve CPU performance |
Enhancement | Added CPU visible buffers in DirectX12 for better performance and reduced GPU memory usage |
Enhancement | Added support for skew transforms on clipped or masked SVG elements with objectBoundingBox -based contentUnits |
Enhancement | Added support for transform and transform-origin on SVG clip paths |
Enhancement | Added support for custom CSS expressions with attributeStyleMap when setting the style via a string value |
Enhancement | Added support for custom CSS expressions for coh-composition-id , coh-custom-effect-name , coh-custom-effect-string-param-1 and coh-custom-effect-string-param-2 styles |
Enhancement | Added DOM.removeAttribute , DOM.focus , DOM.blur inspector APIs |
Enhancement | Added support for using textures in linear color space with the SDR gamma rendering pipeline |
Enhancement | Enhanced configuration support for the player - all options can now be configured with a config.toml file |
Enhancement | Split Android and iOS platforms to a separate mobile package for native, Unreal and Unity |
Enhancement | Improved multithreaded performance of the Sony PlayStation 5 samples by using the standard allocator |
Enhancement | Added errors for invalid attributeStyleMap.set(prop, stringValue) calls |
EnhancementUnreal Engine | Added logging of errors when the System actor can not begin destruction as there are still active HUD, components or widgets |
EnhancementUnreal Engine | Added multi-touch support for UMG widgets |
Enhancement | Added gamepad and keyboard input to the Manager UI sample |
Enhancement | Enhanced logging for invalid css custom expressions to include the faulty expressions |
Fix | Fixed a large memory spike caused by a single allocation during processing of rendering commands |
Fix | Fixed cutting parts of some SVG images |
Fix | Fixed applying fill-rule for SVG paths that override clip-rule |
Fix | Fixed edge cases for transformed content using SVG clipPath or mask references |
Fix | Fixed an assert when adding non-SVG elements inside the SVG DOM |
Fix | Fixed using selectors before the ::slotted pseudo-class |
Fix | Fixed garbage collection of CSS animations when firing animation events |
Fix | Fixed CSS transitions of matrix3d styles |
Fix | Fixed a potential deadlock during system destruction |
Fix | Fixed a changing SVG images with innerHTML and insertAdjacentHTML |
Fix | Fixed incorrect memory counters in the profiling API |
Fix | Fixed the calculation of the peak usage bytes for constant buffers |
FixUnity | Resources requests are now thread-safe and handled on the main thread |
FixUnity | Fixed accumulation of Live Views in Unity3D |
Fix | Fixed a crash when using latest vite and React |