Release notes
On this page
What’s new
Rendering
GPU tessellator
An experimental GPU tessellation algorithm has been added to Renoir. You can enable it using the --use-fill-atlas-tessellation
developer option. Fill paths are pre-processed in an atlas (on the GPU), which is later used to draw the final composited texture. The control points of cubic curves are uploaded to a vertex shader, where these are rasterized. This generally improves performance at the cost of more VRAM usage. The algorithm is used only on shapes that fit in a 1024x1024 texture. Larger shapes will be handled by the previous CPU-based solution.
Migration guide
Migrating to 1.53
Experimental GPU tessellation algorithm
If you rely on a custom backend and you would like to use the --use-fill-atlas-tessellation
option, your custom backend has to support the following:
- Shader type
ST_FillPathAtlas
- Pixel shader type
PST_FillPathAtlas
- Vertex type
VT_FillPathAtlas
- Renderer capability
SupportsSingleChannelMSAATextures
Two new shaders have been added for the GPU tessellation: CohFillPathAtlasVS.hlsl
and CohNullPS.hlsl
. Cubic curves are rasterized in the vertex shader CohFillPathAtlasVS.hlsl
(refer to the comment in the file for implementation details). Since the results are stored in a stencil buffer, The pixel shader CohNullPS.hlsl
is a placeholder and has no effect on the final result. PST_FillPathAtlas
needs to be handled by ST_StandardTexture
(see the if (shaderType == 30)
branch in CohShadeGeometry.ihlsl
). The vertex type VT_FillPathAtlas
must have the following layout (The structure is already defined in PipelineState.h
):
struct FillPathAtlasVertex
{
float4 Points01;
float4 Points23;
float2 FanPoint;
float2 ResolveLevelAndIndex;
unsigned CBData;
};
The renderer capability SupportsSingleChannelMSAATextures
indicates whether the backend supports MSAA on single channel textures. If set to false, RGBA8 textures will be allocated instead of R8.
Changelog
Version 1.53.0
Released 15 May 2024
API | Added mipsCount member to IAsyncResourceResponse to mark how much mips a preloaded texture has |
API | Altered GPUMemoryInfo structure to make it more compact |
API | Added the TextureObject in IUserResourcesListener callbacks |
Feature | Added support for tessellating SVGs on the GPU |
Enhancement | Added support for HTML preloading for XmlHttpRequests and innerHTML |
Enhancement | Added documentation for the View::MouseLeave API |
Enhancement | Added support for the 'loadedmetadata' event to html media elements |
EnhancementUnity | Updated quick start documentation with examples of how to add a view to the scene |
EnhancementUnity | Added a step by step guide for localization |
Enhancement | Added API to retrieve GPU memory usage information |
EnhancementUnity | Improved input handling for CohtmlView rendered inside a UI Canvas |
Enhancement | Added support in desktop renderers (DirectX 11, DirectX12, OpenGL, Vulkan) for preloading mipmap textures |
EnhancementUnity | The Unity package uses the Sony PlayStation 5 SDK 8.0 |
EnhancementUnity | The Unity package uses the Sony PlayStation 4 SDK 11.0 |
Enhancement | Added documentation for the canvas API support |
Enhancement | Added origin information to warnings and errors when it is available |
FixUnity | Fixed setting the HTTP response headers from UnityWebRequest |
FixUnreal Engine | Fixed plugin loading issue on Linux due to a missing renoir library dependency |
FixUnity | Fixed crash on Xbox in HDRP mode due to synchronization issue |
Fix | Fixed ascent and descent for preloaded fonts |
Fix | Fixed a crash when using the API for custom media features on different threads |
Fix | Fixed setting the prototype on custom elements getting upgraded when their class is defined |
Fix | Fixed getAnimations to return only active animations |
Fix | Fixed classList property to return the same object when available and avoid generating garbage |
FixUnity | Fixed a crash on exit in Unity3D editor when a WebSocket connection is still active |
Fix | Fixed wrongly transitioned properties for discrete animations |
Fix | Fixed getAnimations returning animations per property instead of per animation name |
Fix | Fixed a crash when using SVG as background-image on an element with transform |
Fix | Fixed transitions with negative delay incorrectly firing transition events |
Fix | Fixed a crash if a texture for drawing is missing |
Fix | Fixed rendering of textures in samples with OpenGL when filtering is set to FilterLinear |
Fix | Fixed drawing of simple inline SVGs in cohinline paragraphs |
Fix | Fixed image resources not getting unloaded after reducing the background images count |
Fix | Fixed artifacts when using border-image with SVG |
Fix | Fixed a leak when using transitions which could have caused crashes after garbage collection |
Fix | Fixed a wrongly triggered debug assert when detaching elements with pending images |
Fix | Fixed a crash when using elementsFromPoint over pseudo elements |