Skip to content

Releases: NVIDIA-RTX/NRI

v1.122

26 Feb 12:40
Compare
Choose a tag to compare

v1.122:

HIGHLIGHTS:

  • added missing indirect commands, clarified expected command signatures
  • added minor missing functionality: better PSL, two sided stencil support
  • blend constants moved to dynamic state for flexibility
  • adding constants allowing to leave viewportNum and sampleMask zero-initialized
  • reorganized GraphicsPipelineDesc to be more logical
  • removed rasterizerDiscard which is not available in D3D
  • explained LogicFunc, CompareFunc, StencilFunc, BlendFactor and BlendFunc, using useful bits of the spec

BREAKING CHANGES (last round of relatively big changes):

  • multisample settings grouped into optional MultisampleDesc and moved out of RasterizationDesc
  • InputAssemblyDesc split into InputAssemblyDesc and optional VertexInputDesc
  • CmdDispatchMeshTasks renamed to CmdDrawMeshTasks because it's a draw command
  • width, height, depth in DispatchRaysDesc renamed to x, y, z to be inline with other Dispatch commands
  • depthBiasConstantFactor renamed to depthBias
  • Draw* and Dispatch* parameters reorganized into structs to be inline with Indirect variants (same arguments, same order)

DETAILS:

  • added CmdDrawMeshTasksIndirect and CmdDispatchRaysIndirect
  • draw and dispatch parameters reorganized into structs: DrawDesc, DrawIndexedDesc, DispatchDesc, DrawMeshTasksDesc and DispatchRaysIndirectRays (the latter is a bit special)
  • VK: added missing Programmable Sample Positions support
  • VK: added missing line smoothing support
  • added meaningful comments
  • bug fixes & improvements
  • updated .clang-format
  • refactoring

v1.121

20 Feb 07:45
Compare
Choose a tag to compare

v1.121:

HIGHLIGHTS:

  • NRI: improvements and bug fixes
  • Helper: removed before state in (Texture/Buffer)UploadDesc to emphasize the initial raw state of a resource, we are uploading into
  • D3D12: enhanced barriers: more parity with VK barriers
  • WrapperVK: reworked DeviceCreationVKDesc and added enabledExtensions

MINOR (POTENTIALLY) BREAKING CHANGE:

For barriers containing Layout::PRESENT the best (only?) valid barriers are:
Rendering: before = {.access = NriAccessBits_UNKNOWN, .layout = NriLayout_UNKNOWN, .stages = NriStageBits_NONE}
Presenting: after = {.access = NriAccessBits_UNKNOWN, .layout = NriLayout_PRESENT, .stages = <needed stages>}

DETAILS:

  • NRI: set of booleans converted to bit field in DeviceDesc
  • NRI: exposed isMeshShaderPipelineStatsSupported in DeviceDesc
  • NRI: clarified usage of PipelineStatisticsDesc
  • NRI: removed DeviceDesc::isAPIValidationEnabled
  • NRI: SPIRVBindingOffsets moved to DeviceCreation ext
  • D3D12/VK: access bits of {UNKNOWN, PRESENT} barrier get silently patched to COMMON/MEMORY_READ for D3D12/VK
  • D3D12: enhanced barriers: AccessBits::UNKNOWN = D3D12_BARRIER_ACCESS_NO_ACCESS, Layout::UNKNOWN = D3D12_BARRIER_LAYOUT_UNDEFINED
  • D3D12: D3D12_QUERY_DATA_PIPELINE_STATISTICS1 usage moved under NRI_USE_AGILITY_SDK macro
  • VK: rewritten initialization (with bug fixes)
  • Helper: removed "before" state in (Texture/Buffer)UploadDesc
  • WrapperVK: reworked DeviceCreationVKDesc and added enabledExtensions
  • deleted outdated programming guide
  • updated NVAPI
  • updated README
  • polishing

v1.120

12 Feb 04:02
Compare
Choose a tag to compare

v1.120:

HIGHLIGHTS:

  • NRI: bug fixes and improvements for Queries
  • NRI: explicitly exposed isRaytracingSupported and isMeshShaderSupported in DeviceDesc

DETAILS:

  • NRI: clarified query usage
  • NRI: explicitly exposed isRaytracingSupported and isMeshShaderSupported in DeviceDesc
  • NRI: fixed "unreferenced variable" warnings
  • VK: fixed not working queries
  • D3D11/D3D12/VK: reduced code entropy for queries

v1.119

10 Feb 13:10
b5f22f0
Compare
Choose a tag to compare

v1.119:

HIGHLIGHTS:

  • NRI: clarified usage in the main header
  • NRI: explicitly exposed DepthAttachmentDesc::boundsTest enablement (expects CmdSetDepthBounds)
  • NRI: removed StencilAttachmentDesc::reference (use CmdSetStencilReference instead)
  • NRI: bug fixes and improvements
  • Helper: UploadData improvements

DETAILS:

  • NRI: added comments in NRI.h clarifying expected behavior of the dynamic state
  • NRI: explicitly exposed depth bound test enablement
  • NRI: removed StencilAttachmentDesc::reference (used only by VK, was a leftover)
  • NRI: CHECK is now a wrapper around assert
  • D3D11/D3D12: resolved issues around "depth bounds test"
  • D3D12/VK: fixed mesh shader props in device desc
  • D3D12: fixed referencing of temp (deallocated) memory on the stack during graphics pipeline creation
  • VK: added printing of supported extensions (as INFO)
  • Helper: UploadData improvements: mipNum and arraySize can be implicitly taken from the texture
  • Helper: UploadData improvements: added missed optional before state (also added StageBits)

v1.118

09 Feb 06:33
Compare
Choose a tag to compare

v1.118:

BREAKING CHANGES!

HIGHLIGHTS:

  • NRI: generalized barriers (D3D12 "enhanced barriers" and VK_KHR_synchronization2)
  • NRI: refactoring to preserve interface health and agility
  • NRI: ShaderStage, PipelineLayoutShaderStageBits and Dependency generalized to StageBits
  • NRI: improved NRIDescs.h layout, added "pragma regions"
  • D3D11/D3D12/VK: improvements and bug fixes

DETAILS:

  • NRI: refactoring (see Crib Sheet)
  • VK: barriers use VK_KHR_synchronization2
  • VK: bug fixes reported by updated validation
  • VK: improved extensions handling
  • D3D11: exposed isNVAPILoaded in DeviceCreationD3D11Desc
  • D3D11: fixed memory leak caused by wrapped device
  • D3D11: fixed potentially wrong usage of "UAV overlap" extension
  • D3D12: enhanced barriers support with soft fallback to legacy barriers
  • D3D12: utilized "latest" interfaces where possible
  • D3D11/D3D12: more flexible interface querying
  • D3D11/D3D12: fixed potentially wrong swap chain interface querying
  • D3D11/D3D12/VK: depth bounds get reset in SetPipeline per VK spec
  • VALIDATION: improvements to reflect the changes
  • Helper: removed ChangeResourceStates
  • Helper: optimized barriers in UploadData

CRIB SHEET:

  • CmdPipelineBarrier => CmdBarrier
  • Dependency => StageBits
  • PipelineLayoutShaderStageBits => StageBits
  • ShaderStage => StageBits
  • TextureTransitionBarrierDesc => TextureBararierDesc
  • BufferTransitionBarrierDesc => BufferBararierDesc
  • TransitionBarrierDesc => BarrierGroupDesc
  • TextureLayout => Layout
  • PipelineLayoutDesc::stageMask => shaderStages
  • DescriptorRangeDesc::visibility => shaderStages
  • ComputePipelineDesc::computeShader => shader
  • GraphicsPipelineDesc::shaderStages => shaders
  • GraphicsPipelineDesc::shaderStageNum => shaderNum
  • ShaderLibrary::shaderDescs => shaders
  • TextureTransitionBarrierDesc::nextState => after
  • BufferTransitionBarrierDesc::nextState => after
  • BufferUploadDesc::nextAccess => after
  • TextureUploadDesc::nextAccess => after
  • TextureTransitionBarrierDesc::prevState => before
  • BufferTransitionBarrierDesc::prevState => before
  • BufferUploadDesc::prevAccess => before
  • ShaderStage::VERTEX => VERTEX_SHADER
  • ShaderStage::TESS_CONTROL => TESS_CONTROL_SHADER
  • ShaderStage::TESS_EVALUATION => TESS_EVALUATION_SHADER
  • ShaderStage::GEOMETRY => GEOMETRY_SHADER
  • ShaderStage::MESH_CONTROL => MESH_CONTROL_SHADER
  • ShaderStage::MESH_EVALUATION => MESH_EVALUATION_SHADER
  • ShaderStage::FRAGMENT => FRAGMENT_SHADER
  • ShaderStage::COMPUTE => COMPUTE_SHADER
  • ShaderStage::RAYGEN => RAYGEN_SHADER
  • ShaderStage::MISS => MISS_SHADER
  • ShaderStage::INTERSECTION => INTERSECTION_SHADER
  • ShaderStage::CLOSEST_HIT => CLOSEST_HIT_SHADER
  • ShaderStage::ANY_HIT => ANY_HIT_SHADER
  • ShaderStage::CALLABLE => CALLABLE_SHADER
  • TextureLayout::GENERAL => SHADER_RESOURCE_STORAGE

v1.117

02 Feb 04:00
Compare
Choose a tag to compare

v1.117:

  • VK: added ability to skip VK ray tracing initialization during device creation to save memory
  • NRI: removed experimental StreamLine integration
  • D3D11: minor renaming in DeviceCreationDesc
  • D3D12: minor code cleanup
  • updated docs and CMake

v1.116

29 Jan 03:26
Compare
Choose a tag to compare

v1.116:

HIGHLIGHTS:

  • fixes and improvements
  • merged PRs from users

DETAILS:

  • NRI: retrieve adapter desc as early as possible to improve message reporting
  • NRI: fixed GetDisplayDesc behavior if a window is outside of all displays
  • NRI: improved error reporting
  • VK: added missing forward declaration in wrapper ext
  • VK: improved memory type selection
  • VK: fixed wrapper compatibility with C interface

v1.115

25 Jan 06:09
Compare
Choose a tag to compare

v1.115:

HIGHLIGHTS:

  • NRI: added MemoryLocation::DEVICE_UPLOAD to get access to GPU_UPLOAD or (Resizable) BAR heap with silent fallback to HOST_UPLOAD
  • Cmake: explicit specification of required backends
  • Cmake: optional Agility SDK support (needed for D3D12 to get access to recent features, like ReBAR)
  • fixes and improvements

DETAILS:

  • NRI: added MemoryLocation::DEVICE_UPLOAD (ReBAR)
  • NRI: fixed compilation on Android due to missing _mm_pause
  • VK: improved "memoryType" selection
  • VK: improved memory heaps info reporting
  • Cmake improvements
  • updated README

v1.114

18 Jan 08:36
Compare
Choose a tag to compare

v1.114:

  • NRI: removed skipLiveObjectsReporting because it doesn't make a lot of sense in D3D in case of multi device usage
  • NRI: exposed nriReportLiveObjects (D3D only, not needed for VK)
  • NRI: exposed nriGetGraphicsAPIString
  • NRI: exposed nriGetFormatString
  • NRI: improved atomic based "lock"
  • D3D11: improved error reporting
  • VK: fixed SwapChain semaphore usage related issue reported by VK SDK v1.3.275
  • added GitHub actions (1st attempt)
  • Vulkan headers updated to v1.3.275
  • merged MRs from GitHub
  • updated README

v1.113

11 Jan 04:19
Compare
Choose a tag to compare

v1.113:

  • VK: added a light-weight lock in a few places to prevent simultaneous queue access from multiple threads (it's a violation of VK spec, D3D allows such behavior)