Releases: NVIDIA-RTX/NRI
Releases · NVIDIA-RTX/NRI
v1.124
v1.124:
HIGHLIGHTS:
- dropped "mGPU" support (minor breaking change)
- improved VK performance
DETAILS:
- dropped "mGPU" support, which was incomplete in VK, was not implemented in D3D12
- added missing
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BITflag - VK: minor improvements
- resolved some TODOs
- refactoring
v1.123
v1.123:
HIGHLIGHTS:
- no interface changes!
- improvements and bug fixes
DETAILS:
- D3D11: fixed AMD AGS usage, which didn't match the latest version
- D3D11: setup UAV slot (63) for shader extensions (both NVAPI and AGS)
- D3D11: added an ability to create RS state via "CreateRasterizerState1" if "CreateRasterizerState2" is not available
- D3D11: fixed potential log spam in
WaitForDrainif AGS is available - D3D11:
MultiDraw*Indirectcalls don't useMultiDraw*Indirectextensions ifdrawNum = 1 - VK: added missing
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BITflag if device address extension is supported - VK: added support for handy
VK_KHR_swapchain_mutable_format - CMake: minor improvements
v1.122
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
viewportNumandsampleMaskzero-initialized - reorganized
GraphicsPipelineDescto be more logical - removed
rasterizerDiscardwhich is not available in D3D - explained
LogicFunc,CompareFunc,StencilFunc,BlendFactorandBlendFunc, using useful bits of the spec
BREAKING CHANGES (last round of relatively big changes):
- multisample settings grouped into optional
MultisampleDescand moved out ofRasterizationDesc InputAssemblyDescsplit intoInputAssemblyDescand optionalVertexInputDescCmdDispatchMeshTasksrenamed toCmdDrawMeshTasksbecause it's a draw commandwidth, height, depthinDispatchRaysDescrenamed tox, y, zto be inline with otherDispatchcommandsdepthBiasConstantFactorrenamed todepthBiasDraw*andDispatch*parameters reorganized into structs to be inline withIndirectvariants (same arguments, same order)
DETAILS:
- added
CmdDrawMeshTasksIndirectandCmdDispatchRaysIndirect - draw and dispatch parameters reorganized into structs:
DrawDesc,DrawIndexedDesc,DispatchDesc,DrawMeshTasksDescandDispatchRaysIndirectRays(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
v1.121:
HIGHLIGHTS:
- NRI: improvements and bug fixes
- Helper: removed
beforestate in(Texture/Buffer)UploadDescto emphasize the initial raw state of a resource, we are uploading into - D3D12: enhanced barriers: more parity with VK barriers
- WrapperVK: reworked
DeviceCreationVKDescand addedenabledExtensions
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
isMeshShaderPipelineStatsSupportedinDeviceDesc - NRI: clarified usage of
PipelineStatisticsDesc - NRI: removed
DeviceDesc::isAPIValidationEnabled - NRI:
SPIRVBindingOffsetsmoved to DeviceCreation ext - D3D12/VK: access bits of
{UNKNOWN, PRESENT}barrier get silently patched toCOMMON/MEMORY_READfor D3D12/VK - D3D12: enhanced barriers:
AccessBits::UNKNOWN = D3D12_BARRIER_ACCESS_NO_ACCESS,Layout::UNKNOWN = D3D12_BARRIER_LAYOUT_UNDEFINED - D3D12:
D3D12_QUERY_DATA_PIPELINE_STATISTICS1usage moved underNRI_USE_AGILITY_SDKmacro - VK: rewritten initialization (with bug fixes)
- Helper: removed "before" state in
(Texture/Buffer)UploadDesc - WrapperVK: reworked
DeviceCreationVKDescand addedenabledExtensions - deleted outdated programming guide
- updated NVAPI
- updated README
- polishing
v1.120
v1.120:
HIGHLIGHTS:
- NRI: bug fixes and improvements for Queries
- NRI: explicitly exposed
isRaytracingSupportedandisMeshShaderSupportedinDeviceDesc
DETAILS:
- NRI: clarified query usage
- NRI: explicitly exposed
isRaytracingSupportedandisMeshShaderSupportedinDeviceDesc - NRI: fixed "unreferenced variable" warnings
- VK: fixed not working queries
- D3D11/D3D12/VK: reduced code entropy for queries
v1.119
v1.119:
HIGHLIGHTS:
- NRI: clarified usage in the main header
- NRI: explicitly exposed
DepthAttachmentDesc::boundsTestenablement (expectsCmdSetDepthBounds) - NRI: removed
StencilAttachmentDesc::reference(useCmdSetStencilReferenceinstead) - NRI: bug fixes and improvements
- Helper:
UploadDataimprovements
DETAILS:
- NRI: added comments in
NRI.hclarifying 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:
CHECKis now a wrapper aroundassert - 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:
UploadDataimprovements:mipNumandarraySizecan be implicitly taken from the texture - Helper:
UploadDataimprovements: added missed optionalbeforestate (also addedStageBits)
v1.118
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,PipelineLayoutShaderStageBitsandDependencygeneralized toStageBits - NRI: improved
NRIDescs.hlayout, 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
isNVAPILoadedinDeviceCreationD3D11Desc - 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
SetPipelineper VK spec - VALIDATION: improvements to reflect the changes
- Helper: removed
ChangeResourceStates - Helper: optimized barriers in
UploadData
CRIB SHEET:
CmdPipelineBarrier=>CmdBarrierDependency=>StageBitsPipelineLayoutShaderStageBits=>StageBitsShaderStage=>StageBitsTextureTransitionBarrierDesc=>TextureBararierDescBufferTransitionBarrierDesc=>BufferBararierDescTransitionBarrierDesc=>BarrierGroupDescTextureLayout=>LayoutPipelineLayoutDesc::stageMask=>shaderStagesDescriptorRangeDesc::visibility=>shaderStagesComputePipelineDesc::computeShader=>shaderGraphicsPipelineDesc::shaderStages=>shadersGraphicsPipelineDesc::shaderStageNum=>shaderNumShaderLibrary::shaderDescs=>shadersTextureTransitionBarrierDesc::nextState=>afterBufferTransitionBarrierDesc::nextState=>afterBufferUploadDesc::nextAccess=>afterTextureUploadDesc::nextAccess=>afterTextureTransitionBarrierDesc::prevState=>beforeBufferTransitionBarrierDesc::prevState=>beforeBufferUploadDesc::prevAccess=>beforeShaderStage::VERTEX=>VERTEX_SHADERShaderStage::TESS_CONTROL=>TESS_CONTROL_SHADERShaderStage::TESS_EVALUATION=>TESS_EVALUATION_SHADERShaderStage::GEOMETRY=>GEOMETRY_SHADERShaderStage::MESH_CONTROL=>MESH_CONTROL_SHADERShaderStage::MESH_EVALUATION=>MESH_EVALUATION_SHADERShaderStage::FRAGMENT=>FRAGMENT_SHADERShaderStage::COMPUTE=>COMPUTE_SHADERShaderStage::RAYGEN=>RAYGEN_SHADERShaderStage::MISS=>MISS_SHADERShaderStage::INTERSECTION=>INTERSECTION_SHADERShaderStage::CLOSEST_HIT=>CLOSEST_HIT_SHADERShaderStage::ANY_HIT=>ANY_HIT_SHADERShaderStage::CALLABLE=>CALLABLE_SHADERTextureLayout::GENERAL=>SHADER_RESOURCE_STORAGE
v1.117
v1.116
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
GetDisplayDescbehavior 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
v1.115:
HIGHLIGHTS:
- NRI: added
MemoryLocation::DEVICE_UPLOADto get access toGPU_UPLOADor(Resizable) BARheap with silent fallback toHOST_UPLOAD - Cmake: explicit specification of required backends
- Cmake: optional
Agility SDKsupport (needed for D3D12 to get access to recent features, likeReBAR) - 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