Skip to content

v176

Choose a tag to compare

@dzhdanNV dzhdanNV released this 22 Oct 09:29
· 506 commits to main since this release

HIGHLIGHTS:

  • Core: improved AMD Virtual Memory Allocator (VulkanMA and D3D12MA) integration. AllocateMemory can use VMA under the hood (see AllocateMemoryDesc). Memory passed to BindXMemory and CreatePlacedX can be allocated via VMA. This allows to manage aliased resources in a memory block allocated by VMA, and even implement a memory allocator inside the memory allocator
  • Core: added support for directly indexed descriptor heaps, aka SM 6.6 bindless resources (WIP)
  • D3D12: supported recent "tight alignment" feature (already supported in 580+ drivers)
  • resolved compilation issues (Clang, GCC, MacOS, Clang/MSVC, Arm64)
  • bug fixes and improvements

BREAKING CHANGES:

  • ResourceAllocator: contents moved to Core in a better form (AllocateX => CreateCommittedX or CreatePlacedX), offering 2 ways of memory allocation and binding:
    • VK style (no changes): CreateX => GetXMemoryDesc (doesn't require VK_KHR_maintenance4) => AllocateMemory + BindXMemory
    • D3D12 style (new): GetXMemoryDesc2 (requires VK_KHR_maintenance4 support) => CreateCommittedX or AllocateMemory + CreatePlacedX (supports implicit heaps managed by VMA)
  • Streamer: StreamerDesc::dynamicBufferUsageBits replaced with dynamicBufferDesc to allow explicit structureStride specification, i.e. typed or structured (#196)

DETAILS:

  • Core: added SAMPLER_HEAP_DIRECTLY_INDEXED and RESOURCE_HEAP_DIRECTLY_INDEXED to PipelineLayoutBits
  • Core: added MUTABLE to DescriptorRangeBits, indicating that this range may have any non-sampler descriptor types (aka resource heap), currently it's impossible to know an offset in DescriptorPool pointing to this range (WIP)
  • Core: mutableMaxNum added to DescriptorPoolDesc
  • Core: mutableDescriptorType added to device features
  • Core: added Slang support to NRI.hlsl (#189)
  • Core: added missing stddef.h to NRI.h needed for size_t (#194)
  • Upscaler: fixed NIS behavior on edges if resolution scaling is active (NIS bug)
  • Helper: nriConvertDXGIFormatToNRI returns the best-match for a "TYPELESS" format
  • Helper: improved resource packing in a memory block in AllocateAndBindMemory
  • Validation: fixed validation for CreatePipeline(RayTracingPipelineDesc)
  • D3D12: updated Agility SDK to v1.618.1
  • D3D12: added "small resource" alignment handling
  • D3D12: added "tight alignment" support
  • VK: updated VK headers to v1.4.329
  • Clang: fixed lots of compilation issues (#185, #186, #187, #191, #192)
  • MacOS: replaced deprecated syscall(SYS_thread_selfid) with pthread_threadid_np
  • fixed missing calling conventions and improved related code (#193, #195)
  • refactoring and code cleanup