January 11, 2026

SDK 48


Highlights
  • Node-based GraphVarying editor.
  • NodeObject instancing for massive object replication.
  • MSAA compatibility with D3D12 SM6.7.
  • Sparse textures for D3D12 (sparse resource tier 4 is required).
  • Indirect top-level tracing builds on Vulkan (only AMD and Intel drivers support it).
  • Enhanced dialogs on Linux platforms.
  • Editor compatibility with SteamOS.
New samples
  • graph_flow_normal scene demonstrates two-pass normal map texture generation.
  • graph_flow_texture scene demonstrates procedural texture generation.
  • graph_flow_perlin scene demonstrates dynamic procedural textures.
  • gl_device, gles_device, and gles_runtime native examples have been added.
  • native/vk_qt_widget example has no dependency on the Vulkan library.
  • platform/divisor example demonstrates the vertex attribute rate parameter for per-batch input.
  • platform/cooperative test is compatible with non-square matrices.
  • render/limits has an additional instancing-based rendering mode (slower than BVH-based).
  • materials/material_alpha scene demonstrates alpha-tested geometry.
  • objects/object_skeleton scene demonstrates hierarchical skeletons.
  • scripts/script_material_motion scene demonstrates the motion blur effect.
  • scripts/script_material_grid scene generates a high-frequency output verification image.
  • native/vk|d3d12|d3d11_device sample outputs all platform-specific device features.
  • render/multisample demonstrates engine MSAA rendering.
Tools changes
  • Boolean uniform type has been added to the GraphVarying type in Explorer.
  • GraphFlow editor has been added to Explorer.
  • Explorer and Executor support sparse buffers and textures controlled by the “-sparse 1” command line option.
  • Executor now supports controller-based camera movement (can be disabled with the “camera/controller” option).
  • Executor supports tracing_all and screen_all command line options for fast rendering mode selection.
  • Light texture visualization has been added to Explorer.
  • Pool texture visualization has been added to Explorer.
  • The quality of the selection area has been improved.
Plugin changes
  • GraphFlow plugin for node-based GraphVarying editing has been added.
  • Integer vector types have been added to the ControlFlowGLSL editor.
  • Circle, triangle, box, pentagon, hexagon, octagon, and star SDF protos have been added to ControlFlowGLSL.
  • Wave, ripple, and twist warp protos have been added to ControlFlowGLSL.
  • Checker sampler proto has been added to ControlFlowGLSL.
  • Color masks and stencil functions have been added to the MaterialFlow layout proto.
  • Clutter and BatchTransform plugins have been moved to the plugin/graphs directory.
  • A new interface/popup plugin for popup controls and menus has been added.
  • DLSS, FSR3, and XeSS plugins have been updated to the latest versions.
  • New FSR1 and FSR4 plugins have been added.
  • A new FXAA plugin has been added.
  • Noise generation has been moved to the interface/flow plugin from the material/flow plugin.
  • Tracing shader source generation has been added to the material flow and MaterialX plugins.
  • A direction proto to construct a direction vector from two angles has been added to ControlFlow.
  • Enhanced tooltip visualization with delayed disappearance.
  • Instance and Payload protos have been added to MaterialFlow.
  • Transform input has been added to the Vertex input proto of MaterialFlow.
  • Group specification has been added to the Uniform proto of MaterialFlow.
  • A Line primitive has been added to the Primitives plugin.
  • Primitives correctly provide line geometry for ObjectMesh flags with lines.
API changes
  • MaterialShading Tracing source has been renamed to Sample source.
  • SceneRender interface provides access to temporal render textures.
  • The Scene interface now provides the directory where the scene file is located.
  • Methods for registering buffers with default offsets and callbacks have been added to SceneBuffer.
  • NodeObject methods to control instancing with CPU and GPU counts have been added.
  • Payload address and stride parameters have been added to NodeObject.
  • Support for motion-buffer per-pixel jitter offsets has been added via the RenderManager|RenderRenderer::FlagJitterBuffer flag.
  • LightPoint and LightSpot return the intensity texture index.
  • RenderDraw supports multisample texture visualization.
  • API-specific Context interfaces receive a device index in the constructor.
  • VK|D3D12|D3D11Device classes now provide native device features.
  • Access to API layers and extensions in VK|GL|GLESContext and VKDevice has been added.
  • The matrix8x16x16f16 matrix type has been added to the Device::Features structure.
  • Device::Features structure names have been changed to follow API-name style.
  • Device::Features::textureArraySparse field has been added (array textures with a full mipmap chain).
  • Device::Features::surfaceMultisample field has been added (compute shader writes to MSAA textures).
  • A dedicated ControlRoot::setMousePosition() method has been added.
  • ControlText can optionally handle Pressed and Focused callbacks.
  • ControlTree accepts right and left buttons for tree expanding/folding.
  • Canvas|Controls::raiseChild|lowerChild() methods now accept the target position index.
  • Controls::AlignLocal aligns controls using local boundaries only.
  • The ObjectMesh::FlagInstancing flag activates optional geometry instancing at the ObjectMesh level.
  • SeparableFilter now supports custom filter kernels specified by setKernelSource().
  • The number of Function template arguments has been increased to 10.
  • System::exec() now returns the process exit code. The check for successful execution is (ret == 0).
Bug fixes
  • Correct mesh morphing for meshlet-based geometry.
  • Corrected ControlDialog mouse movement compensation with fractional rendering scales.
  • Corrected literal recognition of mixed formats.
Internal Clay features
  • Linux dialogs have a fallback mode through kdialog and zenity applications.
  • Qt6 support has been added to Linux dialogs.
  • Support for RWTexture2DMS in HLSL.
  • Support for input and output gl_SampleMask on all platforms.
  • Constant-based mix operations are now resolved at the compilation stage in the shader compiler.
  • Constant-based pow for powers 2, 3, 4, 5, and 8 is replaced by multiplications in the shader compiler.
  • Correct handling of tracing masks for tracing shadows and reflections.
  • Improved noise sequence generation for reflection and occlusion samples.
  • Meshlet and compute rasterization support meshes with morphing.
  • Correct tracing generation for meshes with morphing.
  • Correct tracing generation for meshes with hierarchical skeleton animations.
  • The script system uses try { } blocks for external code execution.
  • vbar() and hbar() texture patterns have been added.
  • Correct tangent basis generation for mesh line primitives.
»