v1.161
HIGHLIGHTS:
- a debug name can be assigned to any NRI object via the only one
SetDebugNamefunction - added
.natvisdebugger 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:
SetXxxDebugNamereplaced with a singleSetDebugName
DETAILS:
- Core: lots of
SetXxxDebugNamereplaced with a singleSetDebugName, unlocking infinite extensibility - Core:
AdapterDesc::systemMemorySizerenamed tosharedSystemMemorySizeto avoid confusion - Core: added
DeviceDesc::Architecturefor UMA detection - Core: removed
isShaderNativeI32Supported,isShaderNativeF32SupportedandisShaderAtomicsI32SupportedfromDeviceDesc, 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_fetchsupport - VK: semi-fix for rendering without attachments
- VK: updated headers
- Validation:
SetDebugNamevalidates 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
AllocationCallbacksin 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
finalkeywords - polishing