Releases: NVIDIA-RTX/NRI
Releases · NVIDIA-RTX/NRI
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
viewportNum
andsampleMask
zero-initialized - reorganized
GraphicsPipelineDesc
to be more logical - removed
rasterizerDiscard
which is not available in D3D - explained
LogicFunc
,CompareFunc
,StencilFunc
,BlendFactor
andBlendFunc
, using useful bits of the spec
BREAKING CHANGES (last round of relatively big changes):
- multisample settings grouped into optional
MultisampleDesc
and moved out ofRasterizationDesc
InputAssemblyDesc
split intoInputAssemblyDesc
and optionalVertexInputDesc
CmdDispatchMeshTasks
renamed toCmdDrawMeshTasks
because it's a draw commandwidth, height, depth
inDispatchRaysDesc
renamed tox, y, z
to be inline with otherDispatch
commandsdepthBiasConstantFactor
renamed todepthBias
Draw*
andDispatch*
parameters reorganized into structs to be inline withIndirect
variants (same arguments, same order)
DETAILS:
- added
CmdDrawMeshTasksIndirect
andCmdDispatchRaysIndirect
- draw and dispatch parameters reorganized into structs:
DrawDesc
,DrawIndexedDesc
,DispatchDesc
,DrawMeshTasksDesc
andDispatchRaysIndirectRays
(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
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 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
isMeshShaderPipelineStatsSupported
inDeviceDesc
- 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 toCOMMON/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 underNRI_USE_AGILITY_SDK
macro - VK: rewritten initialization (with bug fixes)
- Helper: removed "before" state in
(Texture/Buffer)UploadDesc
- WrapperVK: reworked
DeviceCreationVKDesc
and 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
isRaytracingSupported
andisMeshShaderSupported
inDeviceDesc
DETAILS:
- NRI: clarified query usage
- NRI: explicitly exposed
isRaytracingSupported
andisMeshShaderSupported
inDeviceDesc
- 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::boundsTest
enablement (expectsCmdSetDepthBounds
) - NRI: removed
StencilAttachmentDesc::reference
(useCmdSetStencilReference
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 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:
UploadData
improvements:mipNum
andarraySize
can be implicitly taken from the texture - Helper:
UploadData
improvements: added missed optionalbefore
state (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
,PipelineLayoutShaderStageBits
andDependency
generalized toStageBits
- 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
inDeviceCreationD3D11Desc
- 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
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
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
v1.115:
HIGHLIGHTS:
- NRI: added
MemoryLocation::DEVICE_UPLOAD
to get access toGPU_UPLOAD
or(Resizable) BAR
heap with silent fallback toHOST_UPLOAD
- Cmake: explicit specification of required backends
- Cmake: optional
Agility SDK
support (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
v1.114
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