Skip to content
SiteEmail

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.

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.


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

Enhancement Unity

Updated quick start documentation with examples of how to add a view to the scene

Enhancement Unity

Added a step by step guide for localization

Enhancement

Added API to retrieve GPU memory usage information

Enhancement Unity

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

Enhancement Unity

The Unity package uses the Sony PlayStation 5 SDK 8.0

Enhancement Unity

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

Fix Unity

Fixed setting the HTTP response headers from UnityWebRequest

Fix Unreal Engine

Fixed plugin loading issue on Linux due to a missing renoir library dependency

Fix Unity

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

Fix Unity

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