Skip to content

Releases: NVIDIA-RTX/NRI

v1.144

30 Aug 03:18

Choose a tag to compare

HIGHLIGHTS:

  • resolved inability to use read-only depth or stencil when the other subresource is writable
  • added ability to separate depth and stencil in a barrier
  • introduced PlaneBits concept, which is also needed for video

BREAKING CHANGES:

  • attachmentContentType renamed to planes
  • ClearDesc::planes must be set to PlaneBits::COLOR explicitly for color only clears
  • no changes in barriers unless depth and stencil separation needed
  • removed ResourceViewBits, use extended Texture1DViewType and Texture2DViewType instead
  • no more API changes planned \O/

DETAILS:

  • NRI: introduced PlaneBits
  • NRI: extended Texture1DViewType and Texture2DViewType to include read-only depth and/or stencil
  • NRI: removed ResourceViewBits (there was not a "resource" concept), replaced with extended view types
  • NRI: AttachmentContentType replaced with PlaneBits
  • NRI: added PlaneBits to TextureBarrierDesc
  • D3D11/D3D12/VK: improvements around ClearAttachments
  • VK: ClearAttachments behavior matched D3D
  • Helper: added planes to TextureUploadDesc
  • Validation: improved ClearAttachments validation
  • Validation: added detection of a mismatched D3D/VK behavior related to read-only depth-stencil usage

v1.143

29 Aug 06:14
5562b41

Choose a tag to compare

HIGHLIGHTS:

  • NRI: added shading rate support (aka VRS) for all GAPIs, including D3D11
  • bug fixes and improvements

BREAKING_CHANGES:

  • DEPTH_STENCIL in Layout and Access renamed to DEPTH_STENCIL_ATTACHMENT to emphasize the stage

DETAILS:

  • D3D11/D3D12/VK/Validation: added shading rate support
  • D3D11: fixed 0 values potentially sneaking into internally used m_SubresourceInfo
  • D3D11: fixed ForcedSampleCount usage
  • D3D11/D3D12: improved NVAPI usage and fixed some bugs
  • VK: hooked up VK_EXT_image_sliced_view_of_3d
  • VK: implemented read-only depth-stencil
  • VK: 3D textures get created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT flag for flexibility and compatibility
  • Validation: reduced code entropy
  • added .clang-format-ignore
  • updated docs

v1.142

26 Aug 08:47

Choose a tag to compare

HIGHLIGHTS:

  • interface polishing (sorry for the breaking changes)
  • bug fixes and improvements

BREAKING CHANGES:

  • REMAINING_ARRAY_LAYERS renamed to REMAINING_LAYERS
  • REMAINING_MIP_LEVELS renamed to REMAINING_MIPS
  • arraySize renamed to layerNum
  • arrayOffset renamed to layerOffset
  • textureArrayMaxDim renamed to textureArrayMaxLayerNum
  • GeometryObject::triangles replaced with GeometryObject::geometry.triangles
  • GeometryObject::boxes replaced with GeometryObject::geometry.aabbs

DETAILS:

  • NRI: emphasize that a texture array consists of layers
  • NRI: avoid using size for something other than size in bytes
  • Raytracing: better resolved warning C4201 in the header
  • VK: fixed VkRayTracingShaderGroupCreateInfoKHR::type selection
  • WrapperD3D12: fixed validation
  • improved comments in the main headers
  • updated .clang-format

v1.141

23 Aug 06:47

Choose a tag to compare

HIGHLIGHTS:

  • added a new extension NRIResourceAllocator, which adds a simple way to create resources already bound to memory. Moreover, this extension uses AMD Vulkan/D3D12 MemoryAllocator under the hood, allowing to not only efficiently bind resources to memory chunks, but also track free memory segments, reusing them for subsequent allocations. Most likely, in the future this extension will get more MA functionality (statistics at least)

BREAKING CHANGES:

  • Core: MemoryAllocatorInterface renamed to AllocationCallbacks (similarly for memoryAllocatorInterface)
  • Core: DeviceDesc::memoryTier replaced with DeviceDesc::isMemoryTier2Supported
  • Raytracing: GetAccelerationStructureMemoryDesc made AccelerationStructure object independent
  • WrapperVK: GetVk* replaced with Get*VK to match the style

DETAILS:

  • NRI: added new extension NRIResourceAllocator, which allows to create bound-to-memory resources
  • NRI: alignment info grouped in one place in DeviceDesc
  • NRI: fixed NRI_STATIC_LIBRARY
  • Creation: exposed DeviceCreationDesc::disable3rdPartyAllocationCallbacks to use allocationCallbacks only for NRI needs
  • WrapperD3D12: removed unnecessary arguments
  • WrapperVK: removed unnecessary arguments
  • WrapperVK: minimized number of "mimic" types
  • Validation: tweaks and adjustments
  • introduced NRI_OPTIONAL to improve readability of main headers
  • bug fixes and improvements
  • improved comments in main headers
  • massive refactoring and code cleanup

v1.140

07 Aug 05:52

Choose a tag to compare

HIGHLIGHTS:

  • NRI: exposed optional memory priority
  • NRI: exposed HIGH_PRIORITY_COPY queue
  • VK: doesn't use potentially slow VK_SHARING_MODE_CONCURRENT unless a COMPUTE or COPY queue is requested
  • NVAPI with MIT license!

BREAKING CHANGES:

  • Vulkan => VK or vk to avoid divergency
  • isVulkan12 => minorVersion for future needs
  • familyIndex => queueFamilyIndex to avoid divergency

DETAILS:

  • NRI: AllocateMemory args wrapped into AllocateMemoryDesc struct with optional priority
  • VK: improved queue related code
  • VK: hooked up VK_EXT_memory_priority
  • Wrapper: fixed not updated queue family indices participating into multi-queue activities
  • reduced code entropy
  • updated NVAPI
  • improved comments

v1.139

01 Aug 06:59

Choose a tag to compare

HIGHLIGHTS:

  • Helper: exposed ResourceGroupDesc::preferredMemorySize to define desired memory chunk size (256 Mb if 0)
  • bug fixes and improvements

DETAILS:

  • Helper: added ability to provide preferred memory chunk size
  • bug fixes and improvements
  • updated Vulkan headers to v1.3.290
  • updated comments

v1.138

22 Jul 04:12

Choose a tag to compare

HIGHLIGHTS:

  • improved memory allocation API (more friendly for render graph based systems)

BREAKING CHANGES:

  • GetAccelerationStructureMemoryInfo renamed to GetAccelerationStructureMemoryDesc
  • GetBufferMemoryInfo(const Buffer& buffer, ...) changed to GetBufferMemoryDesc(const Device& device, const BufferDesc& bufferDesc, ...)
  • GetTextureMemoryInfo(const Texture& texture, ...) changed to GetTextureMemoryDesc(const Device& device, const TextureDesc& textureDesc, ...)
  • no-brain migration: GetXxxMemoryInfo(resource, ...) => GetXxxMemoryDesc(device, NRI.GetXxxDesc(resource), ...)

DETAILS:

  • NRI: GetXxxMemoryInfo renamed to GetXxxMemoryDesc
  • NRI: use BufferDesc and TextureDesc to get MemoryDesc, avoiding beforehand resource creation
  • NRI: exposed DeviceDesc::memoryTier, which provides a hint about which resource categories can be put in one memory (valid for D3D12, just a hint for VK)
  • VK: old-school vkGetXxxMemoryRequirements2 replaced with modern vkGetDeviceXxxMemoryRequirements from VK_KHR_maintenance4

v1.137

21 Jul 05:43

Choose a tag to compare

HIGHLIGHTS:

  • bug fixes and improvements
  • baby steps towards better memory allocation & binding

DETAILS:

  • updated version!
  • D3D12/VK: reduced code entropy around MemoryType
  • D3D12: fixed validation error: some heap flags can't be passed into CreateCommitedResource (STATE_CREATION ERROR #640)
  • D3D12: if D3D12_RESOURCE_HEAP_TIER_2 is available, prefer to merge all resources into one heap (matches VK behavior)
  • updated AMDAGS

v1.136

18 Jul 04:23
9d765f0

Choose a tag to compare

HIGHLIGHTS:

  • improvements

DETAILS:

  • NRI: improved nriQueryVideoMemoryInfo
  • Wrapper: various improvements
  • Ray tracing: scratch buffer size is aligned under the hood for comfortable usage (concatenation of scratch memory)
  • Ray tracing: exposed DeviceDesc::rayTracingScratchAlignment
  • VK: implemented nriQueryVideoMemoryInfo
  • updated NVAPI
  • non-Windows experience improvements
  • fixed typos

v1.135

27 May 05:31

Choose a tag to compare

HIGHLIGHTS:

  • improvements

DETAILS:

  • NRI: exposed isEnchancedBarrierSupported in DeviceDesc (if false, Layout is unsupported and not needed)
  • NRI: added ability to disable extension libraries (NVAPI and AMDAGS)
  • D3D11: "byte address buffer" support (?)
  • added clarifications