Release Notes 1.66.0
Changelog
Section titled “Changelog”Version 1.66.0
Section titled “Version 1.66.0”| API | Removed developer option for using deprecated |
| API | |
| API Unreal Engine | Added support for the incremental garbage collection in Unreal Engine 5. Projects leveraging Unreal Engine 4.27 will have the plugin files modified during project generation |
| Feature Unreal Engine | Added support for incremental garbage collection for Unreal Engine 5 |
| Enhancement | Added Compositor and Surface Partitioning support for DirectX 12 in the Player application |
| Enhancement | Added an example blur filtering of a texture using a compute shader |
| Enhancement | Added a log message notifying that |
| Enhancement | Added DirectX 12 support to the default samples solution |
| Enhancement | Fixed unclosed profiling markers when using the default profiling backend on PC platforms |
| Enhancement Unreal Engine | Simplify view initialization when using UMG widgets |
| Enhancement Unreal Engine | Ensure virtual keyboard will not use the view or the |
| Fix | Fixed a layout regression with incorrect handling of undefined dimensions |
| Fix | Fixed crashes when |
| Fix | Fixed crashes with null pointer parents during style solving when using the |
| Fix | Fixed hover and active pseudo-classes inside slotted and host brackets |
| Fix | Fixed stale styling when adding an element that creates a complex selector match |
| Fix | Fixed caret positioning in |
| Fix Unity | Fixed accumulation of C# implementations of public interfaces until the library is unloaded |
| Fix | Fixed localization sample for Nintendo Switch |
| Fix Unity | Fixed input issues in the |
| Fix | Fixed a resource leak of in the DirectX 11 backend |
| Fix | Fixed performance regression in text rendering |
| Fix | Fixed SVG border image rendering regression when SVG has no width and height |
| Fix | Fixed SVG mask size when using relative units |
| Fix | Fixed the calculation of |
| Fix | Fixed updating of inline SVG styles when the root font style changes |
| Fix Unreal Engine | Updated Player starting scripts to list the available options |
| Fix Unreal Engine | Fix possible unpainted frames when using UMG widgets and destroying the scene |
| Fix Unreal Engine | Fix backdrop-filter on Mobile devices when |
| Fix Unreal Engine | Fix assert when using shared render target textures and UMG on Sony platforms |
| Fix Unreal Engine | Add missing lock in |
| Fix Unreal Engine | Invalidate the IME Manager after deactivating and unregistering the Text Input Method Context, resolving a crash |
| Fix Unreal Engine | Fixed issues with |
| Fix Unreal Engine | Fixed selection issues when entering text with virtual keyboard |
| Fix Unreal Engine | Fixed deleting the last character of the input field when using virtual keyboard |
| Fix Unreal Engine | Fixed possible crash in |
Migration guide
Section titled “Migration guide”Pixel Shader Changes
Section titled “Pixel Shader Changes”Changes to the Data_PS constant buffer data layout
Section titled “Changes to the Data_PS constant buffer data layout”With the new release, our Pixel Shader (PS) Constant Buffer Data_PS has had its data layout altered to accommodate more flexible per command data storage. All custom shaders accessing elements from the CB will have to be modified to use the correct elements.
| Previous Layout | Current Layout |
|---|---|
|
|
|
|
Previous constant buffer offsets usage example:
int vs, ps, shaderType; decode(input.VaryingData, vs, ps, shaderType); // ps will point to the color that should be used for this pixel // ps + 1 will point to a float4 that contains other per command data float4 inColor = Data_PS[ps]; float4 perCommandData = Data_PS[++ps]; // perCommandData.w is the index of data used by several batched commands. The format // of this shared data is custom for every command type. int sharedCBOffset = int(perCommandData.w);Current constant buffer offsets usage example:
int vs, ps, shaderType; decode(input.VaryingData, vs, ps, shaderType); // ps will point to a float4 that contains the shared CB offset and some per command user data // ps + 1 will point to the color that should be used for this pixel float4 perCommandData = Data_PS[ps]; float4 inColor = Data_PS[++ps]; // perCommandData.x is the index of data used by several batched commands. The format // of this shared data is custom for every command type. int sharedCBOffset = int(perCommandData.x);Below is a table, mapping the Pixel Shader CB elements' previous and new location inside the Data_PS CB along with their usage:
| Before | Now | Usage |
|---|---|---|
Data_PS[ps] | Data_PS[ps + 1] | inColor / Other custom per command data |
Data_PS[ps + 1].x | Data_PS[ps].y | userData |
Data_PS[ps + 1].y | Data_PS[sharedCBOffset + SHARED_PS_DATA_OFFSET].y | additionalFlags |
Data_PS[ps + 1].z | Data_PS[sharedCBOffset + SHARED_PS_DATA_OFFSET].x | shouldClip |
Data_PS[ps + 1].w | Data_PS[ps].x | sharedCBOffset |
Data_PS[sharedCBOffset] | Data_PS[sharedCBOffset] | Custom per batch data |
Data_PS[sharedCBOffset + SHARED_PS_DATA_OFFSET] | Data_PS[sharedCBOffset + SHARED_PS_AA_CLIPPING_DATA_OFFSET] | AA clipping data (optional, if shouldClip is true) |
Data_PS[ps].z | userData (unused for now) | |
Data_PS[ps].w | userData (unused for now) | |
Data_PS[sharedCBOffset + SHARED_PS_DATA_OFFSET].z | Color matrix offset (-1 if none or not needed) | |
Data_PS[sharedCBOffset + SHARED_PS_DATA_OFFSET].w | Padding (unused for now) |
The SHARED_PS_DATA_OFFSET, which was used to calculate the offset of the AA Clipping data, will now be used to find the initial per batch data(containing the shouldClip, additional flags and the color matrix offset), while a new offset called SHARED_PS_AA_CLIPPING_DATA_OFFSET will be used for the original purpose.
Before:
#define SHARED_PS_DATA_OFFSET -1Now:
#define SHARED_PS_DATA_OFFSET -1#define SHARED_PS_AA_CLIPPING_DATA_OFFSET -2© 2026 Coherent Labs. All rights reserved.