HIGHLIGHTS:
- a debug name can be assigned to any NRI object via the only one
SetDebugName
function - added
.natvis
debugger markup, unwrapping useless client-side anonymized opaque pointers to meaningful{ptr, name}
or{ptr, name, desc}
(if validation is enabled) - extended
DeviceDesc
(architecture, shader clock, ray tracing position fetch) - various improvements
BREAKING CHANGES:
SetXxxDebugName
replaced with a singleSetDebugName
DETAILS:
- Core: lots of
SetXxxDebugName
replaced with a singleSetDebugName
, unlocking infinite extensibility - Core:
AdapterDesc::systemMemorySize
renamed tosharedSystemMemorySize
to avoid confusion - Core: added
DeviceDesc::Architecture
for UMA detection - Core: removed
isShaderNativeI32Supported
,isShaderNativeF32Supported
andisShaderAtomicsI32Supported
fromDeviceDesc
, which are always supported on any device - Core: "shader clock" support
- Core/VKWrapper: added some missing bits for retrieving native objects
- D3D12: fixed crash on ray tracing pipeline creation (regression)
- D3D11/D3D12: removed
D3DExt.h/hpp
, its functionality copied to corresponding implementations - D3D11/D3D12: polished shader extensions, since AMD AGS casts some restrictions
- VK:
VK_KHR_ray_tracing_position_fetch
support - VK: semi-fix for rendering without attachments
- VK: updated headers
- Validation:
SetDebugName
validates that an object is an NRI object - Cmake: added
NRI_ENABLE_DEBUG_NAMES_AND_ANNOTATIONS
(on by default) - added
.natvis
(debugger markup) file - fixed creating a copy of
AllocationCallbacks
in every instance of a customizedstd::vector
(now it's a reference to a single instance stored in device, it reduces memory usage of tiny entities, which can be created 100 000 times) - added lots of
final
keywords - polishing