Releases: NVIDIAGameWorks/NRI
Releases · NVIDIAGameWorks/NRI
v1.151
HIGHLIGHTS:
- bug fixes and improvements
BREAKING CHANGE:
PipelineLayoutDesc::rootRegisterSpace
affects root constants in shaders- added
pipelineLayout
prefix toroot
limits inDeviceDesc
to emphasize the meaning
DETAILS:
- Helper: added optional helper
FitPipelineLayoutSettingsIntoDeviceLimits
for nerds - Helper: removed useless "constructors" (use designated initializers)
- Core: allow "0" for
depth
,layerNum
andsampleNum
inTextureDesc
- Core: added
rootRegisterSpace
toPipelineLayoutDesc
, which is used for root constants and descriptors - bug fixes and improvements
v1.150
HIGHLIGHTS:
- NRI: added
GraphicsAPI::NONE
with a dummy implementation, which supports everything, but does nothing - NRI: added support for root descriptors in a pipeline layout (respecting D3D12 restrictions)
- NRI: exposed
bindlessTier
inDeviceDesc
- NRI: improved the look of the interfaces, added more comments
- NRI: improved compilation time (4x-5x)
- bug fixes and improvements
BREAKING CHANGES (more bytes needed to explain than to fix):
CmdSetConstants
renamed toCmdSetRootConstants
(yes, multiple constants can be organized in a single binding)NRI_PUSH_CONSTANTS
renamed toNRI_ROOT_CONSTANTS
(yes, multiple constants can be organized in a single binding)PushConstantDesc
renamed toRootConstantDesc
(foggy, but not a plural form to allowrootConstants
)PipelineLayoutDesc::pushConstants
renamed torootConstants
color
inOutputMergerDesc
renamed tocolors
(a plural form needed)colorNum
moved right aftercolors
inOutputMergerDesc
to follow "objects first, number of objects next" idiom (like in VK)- swapped order of
streams
andattributeNum
inVertexInputDesc
to follow "objects first, number of objects next" idiom (like in VK) isLogicOpSupported
renamed toisLogicFuncSupported
(sinceLogicFunc
is used)boundDescriptorSetMaxNum
renamed topipelineLayoutDescriptorSetMaxNum
(to emphasize the meaning)pushConstantsMaxSize
renamed torootConstantMaxSize
(again to follow the nomenclature currently in use)
DETAILS (in addition to major changes):
- NRI: added
RootDescriptorSetDesc
used inPipelineLayoutDesc
- Core: added
CmdSetRootDescriptor
function - D3D12: properly filled pipeline layout limits dictated by HW root signature size and the resource binding tier
- D3D12: hooked up "heap directly indexed" root signature flags if SM 6.6 is supported
- D3D12/D3D11/VK: minor improvements and optimizations here and there
- D3D11: minor fixes to match D3D12
- Validation: various improvements
- Cmake: project structure made matching on disk folder layout
- reduced code entropy
- updated AMD memory allocator
- refactoring
v1.149
HIGHLIGHTS:
- Core: simplified understanding of how to work with descriptor ranges and sets (no functional changes)
- minor improvements
BREAKING CHANGES:
offsetInRange
=>baseDescriptor
(forDescriptorRangeUpdateDesc
)offsetInRange
=>descriptorIndex
(for clear storage descs)setIndexInPipelineLayout
=>setIndex
- rotated
src/dst
andbase
prefixes inDescriptorSetCopyDesc
DETAILS:
- Core:
[ Pipeline Layout ]
section has been reorganized into[ Pipeline layout and descriptors management ]
(by regrouping some structs) - Core: highlighted and explained in comments
PipelineLayout => DescriptorSet => DescriptorRange => Descriptor
idiom - Core: explained
setIndex
=>rangeIndex
=>descriptorIndex
- Core: a few name changes
- D3D12: relaxed global UAV barrier conditions
v1.148
HIGHLIGHTS:
- Core: clarified & simplified creation of descriptor ranges with "partially bound", "array" and "variable-sized array" functionality
- Core: reduced entropy and added order to
DeviceDesc
, exposed more "tiers" (if it's better than a set of individual features) - Core: reduced entropy around programmable sample positions (PSL) names
- Core: added
shaderModel
toDeviceDesc
(best guess for VK, but still useful) - MeshShader: added support for optional
countBuffer
inCmdDrawMeshTasksIndirect
- improved docs
BREAKING CHANGES (simple and straightforward):
- PSL: all names are based on "locations" without "programmable"
DescriptorRangeDesc::isDescriptorNumVariable
(andVARIABLE_DESCRIPTOR_NUM
) =>DescriptorRangeBits::VARIABLE_SIZED_ARRAY
DescriptorRangeDesc::isArray
(andDESCRIPTOR_ARRAY
) =>DescriptorRangeBits::ARRAY
DescriptorSetDesc::partiallyBound
(andPARTIALLY_BOUND
) =>DescriptorRangeBits::PARTIALLY_BOUND
(moved to descriptor range)DeviceDesc
tweaks
DETAILS:
- Core: added
rayTracingTier
toDeviceDesc
- Core: added
isAdditionalShadingRatesSupported
toDeviceDesc
to highlight 2x4, 4x2 and 4x4 rates support - Core: shading rate features replaced with
shadingRateTier
inDeviceDesc
- Core: explained all old and new "tiers" in
DeviceDesc
- Core: removed
isDrawMeshTasksIndirectSupported
fromDeviceDesc
(always supported if mesh shaders are supported) - Core: removed
isDispatchRaysIndirectSupported
fromDeviceDesc
(userayTracingTier
) - Core: added
DescriptorRangeBits
expanding and simplifying functionality around previously usedpartiallyBound
,isArray
andisDescriptorNumVariable
- MeshShader: added support for optional
countBuffer
inCmdDrawMeshTasksIndirect
- improved comments in the main headers
v1.147
HIGHLIGHTS:
- interface polishing
DETAILS:
- Core: removed misleading
drawIndexedIndex16ValueMax
anddrawIndexedIndex32ValueMax
fromDeviceDesc
- Core:
smoothLines
renamed tolineSmoothing
to matchisLineSmoothingSupported
- Core:
conservativeRasterization
renamed toconservativeRaster
to matchconservativeRasterTier
v1.146
HIGHLIGHTS:
- improved depth bias
DETAILS:
- Core: added
CmdSetDepthBias
, which can be used to override depth bias in pipeline (if enabled) - Core: depth bias values grouped into
DepthBiasDesc
for comfortable usage - Core: exposed
DeviceDesc::isDynamicDepthBiasSupported
- Core:
antialiasedLines
renamed tosmoothLines
to matchisLineSmoothingSupported
- VK:
VK_EXT_line_rasterization
replaced with theKHR
version - improved docs
v1.145
HIGHLIGHTS:
- added beauty to the interface (no interface changes, except a few name changes)
- improvements and bug fixes
BREAKING CHANGES:
ShadingRate
values gotFRAGMENT_SIZE
prefix (x
in the middle was capitalized)- massaged
ClearDesc
because of introducedColor
union (color32f
=>color.f
) - removed
TYPE_
prefix fromMessage
(clarified interaction withwingdi.h
) - removed
BorderColor
, added flexibleSamplerDesc::borderColor
andSamplerDesc::isInteger
DETAILS:
- NRI: massaged
NRIMacro.h
- NRI: added a few missing
const
- NRI:
GetSupportedDepthFormat
moved toNRI.h
due to dependency onCoreInterface
- NRI: all headers of extensions made self-contained (depend only on
NRIDescs.h
) - NRI:
MAX_NUM
got hidden in depths ofNRIMacro.h
- NRI: fixed wrong forward declaration of D3D related types in C ^_^
- NRI: useless
__fastcal
replaced with__stdcall
- NRI: archaic predefined border color values replaced with custom colors
- NRI: added forgotten
MIRROR_CLAMP_TO_EDGE
address mode - D3D12: added proper custom border color support
- D3D11/D3D12: fixed some NVAPI calls and shading rate usage if unsupported
- VK: added proper custom border color support
- Validation: improved validation for
SamplerDesc
v1.144
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 toplanes
ClearDesc::planes
must be set toPlaneBits::COLOR
explicitly for color only clears- no changes in barriers unless depth and stencil separation needed
- removed
ResourceViewBits
, use extendedTexture1DViewType
andTexture2DViewType
instead - no more API changes planned \O/
DETAILS:
- NRI: introduced
PlaneBits
- NRI: extended
Texture1DViewType
andTexture2DViewType
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 withPlaneBits
- NRI: added
PlaneBits
toTextureBarrierDesc
- D3D11/D3D12/VK: improvements around
ClearAttachments
- VK:
ClearAttachments
behavior matched D3D - Helper: added
planes
toTextureUploadDesc
- Validation: improved
ClearAttachments
validation - Validation: added detection of a mismatched D3D/VK behavior related to read-only depth-stencil usage
v1.143
HIGHLIGHTS:
- NRI: added shading rate support (aka VRS) for all GAPIs, including D3D11
- bug fixes and improvements
BREAKING_CHANGES:
DEPTH_STENCIL
inLayout
andAccess
renamed toDEPTH_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
HIGHLIGHTS:
- interface polishing (sorry for the breaking changes)
- bug fixes and improvements
BREAKING CHANGES:
REMAINING_ARRAY_LAYERS
renamed toREMAINING_LAYERS
REMAINING_MIP_LEVELS
renamed toREMAINING_MIPS
arraySize
renamed tolayerNum
arrayOffset
renamed tolayerOffset
textureArrayMaxDim
renamed totextureArrayMaxLayerNum
GeometryObject::triangles
replaced withGeometryObject::geometry.triangles
GeometryObject::boxes
replaced withGeometryObject::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