Skip to content

Releases: NVIDIAGameWorks/NRI

v1.151

20 Sep 08:14
Compare
Choose a tag to compare

HIGHLIGHTS:

  • bug fixes and improvements

BREAKING CHANGE:

  • PipelineLayoutDesc::rootRegisterSpace affects root constants in shaders
  • added pipelineLayout prefix to root limits in DeviceDesc 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 and sampleNum in TextureDesc
  • Core: added rootRegisterSpace to PipelineLayoutDesc, which is used for root constants and descriptors
  • bug fixes and improvements

v1.150

18 Sep 08:11
Compare
Choose a tag to compare

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 in DeviceDesc
  • 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 to CmdSetRootConstants (yes, multiple constants can be organized in a single binding)
  • NRI_PUSH_CONSTANTS renamed to NRI_ROOT_CONSTANTS (yes, multiple constants can be organized in a single binding)
  • PushConstantDesc renamed to RootConstantDesc (foggy, but not a plural form to allow rootConstants)
  • PipelineLayoutDesc::pushConstants renamed to rootConstants
  • color in OutputMergerDesc renamed to colors (a plural form needed)
  • colorNum moved right after colors in OutputMergerDesc to follow "objects first, number of objects next" idiom (like in VK)
  • swapped order of streams and attributeNum in VertexInputDesc to follow "objects first, number of objects next" idiom (like in VK)
  • isLogicOpSupported renamed to isLogicFuncSupported (since LogicFunc is used)
  • boundDescriptorSetMaxNum renamed to pipelineLayoutDescriptorSetMaxNum (to emphasize the meaning)
  • pushConstantsMaxSize renamed to rootConstantMaxSize (again to follow the nomenclature currently in use)

DETAILS (in addition to major changes):

  • NRI: added RootDescriptorSetDesc used in PipelineLayoutDesc
  • 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

11 Sep 09:24
Compare
Choose a tag to compare

HIGHLIGHTS:

  • Core: simplified understanding of how to work with descriptor ranges and sets (no functional changes)
  • minor improvements

BREAKING CHANGES:

  • offsetInRange => baseDescriptor (for DescriptorRangeUpdateDesc)
  • offsetInRange => descriptorIndex (for clear storage descs)
  • setIndexInPipelineLayout => setIndex
  • rotated src/dst and base prefixes in DescriptorSetCopyDesc

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

10 Sep 07:28
Compare
Choose a tag to compare

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 to DeviceDesc (best guess for VK, but still useful)
  • MeshShader: added support for optional countBuffer in CmdDrawMeshTasksIndirect
  • improved docs

BREAKING CHANGES (simple and straightforward):

  • PSL: all names are based on "locations" without "programmable"
  • DescriptorRangeDesc::isDescriptorNumVariable (and VARIABLE_DESCRIPTOR_NUM) => DescriptorRangeBits::VARIABLE_SIZED_ARRAY
  • DescriptorRangeDesc::isArray (and DESCRIPTOR_ARRAY) => DescriptorRangeBits::ARRAY
  • DescriptorSetDesc::partiallyBound (and PARTIALLY_BOUND) => DescriptorRangeBits::PARTIALLY_BOUND (moved to descriptor range)
  • DeviceDesc tweaks

DETAILS:

  • Core: added rayTracingTier to DeviceDesc
  • Core: added isAdditionalShadingRatesSupported to DeviceDesc to highlight 2x4, 4x2 and 4x4 rates support
  • Core: shading rate features replaced with shadingRateTier in DeviceDesc
  • Core: explained all old and new "tiers" in DeviceDesc
  • Core: removed isDrawMeshTasksIndirectSupported from DeviceDesc (always supported if mesh shaders are supported)
  • Core: removed isDispatchRaysIndirectSupported from DeviceDesc (use rayTracingTier)
  • Core: added DescriptorRangeBits expanding and simplifying functionality around previously used partiallyBound, isArray and isDescriptorNumVariable
  • MeshShader: added support for optional countBuffer in CmdDrawMeshTasksIndirect
  • improved comments in the main headers

v1.147

02 Sep 13:55
Compare
Choose a tag to compare

HIGHLIGHTS:

  • interface polishing

DETAILS:

  • Core: removed misleading drawIndexedIndex16ValueMax and drawIndexedIndex32ValueMax from DeviceDesc
  • Core: smoothLines renamed to lineSmoothing to match isLineSmoothingSupported
  • Core: conservativeRasterization renamed to conservativeRaster to match conservativeRasterTier

v1.146

02 Sep 13:19
Compare
Choose a tag to compare

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 to smoothLines to match isLineSmoothingSupported
  • VK: VK_EXT_line_rasterization replaced with the KHR version
  • improved docs

v1.145

02 Sep 07:19
Compare
Choose a tag to compare

HIGHLIGHTS:

  • added beauty to the interface (no interface changes, except a few name changes)
  • improvements and bug fixes

BREAKING CHANGES:

  • ShadingRate values got FRAGMENT_SIZE prefix (x in the middle was capitalized)
  • massaged ClearDesc because of introduced Color union (color32f => color.f)
  • removed TYPE_ prefix from Message (clarified interaction with wingdi.h)
  • removed BorderColor, added flexible SamplerDesc::borderColor and SamplerDesc::isInteger

DETAILS:

  • NRI: massaged NRIMacro.h
  • NRI: added a few missing const
  • NRI: GetSupportedDepthFormat moved to NRI.h due to dependency on CoreInterface
  • NRI: all headers of extensions made self-contained (depend only on NRIDescs.h)
  • NRI: MAX_NUM got hidden in depths of NRIMacro.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

30 Aug 03:18
Compare
Choose a tag to compare

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 to planes
  • ClearDesc::planes must be set to PlaneBits::COLOR explicitly for color only clears
  • no changes in barriers unless depth and stencil separation needed
  • removed ResourceViewBits, use extended Texture1DViewType and Texture2DViewType instead
  • no more API changes planned \O/

DETAILS:

  • NRI: introduced PlaneBits
  • NRI: extended Texture1DViewType and Texture2DViewType 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 with PlaneBits
  • NRI: added PlaneBits to TextureBarrierDesc
  • D3D11/D3D12/VK: improvements around ClearAttachments
  • VK: ClearAttachments behavior matched D3D
  • Helper: added planes to TextureUploadDesc
  • Validation: improved ClearAttachments validation
  • Validation: added detection of a mismatched D3D/VK behavior related to read-only depth-stencil usage

v1.143

29 Aug 06:14
5562b41
Compare
Choose a tag to compare

HIGHLIGHTS:

  • NRI: added shading rate support (aka VRS) for all GAPIs, including D3D11
  • bug fixes and improvements

BREAKING_CHANGES:

  • DEPTH_STENCIL in Layout and Access renamed to DEPTH_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

26 Aug 08:47
Compare
Choose a tag to compare

HIGHLIGHTS:

  • interface polishing (sorry for the breaking changes)
  • bug fixes and improvements

BREAKING CHANGES:

  • REMAINING_ARRAY_LAYERS renamed to REMAINING_LAYERS
  • REMAINING_MIP_LEVELS renamed to REMAINING_MIPS
  • arraySize renamed to layerNum
  • arrayOffset renamed to layerOffset
  • textureArrayMaxDim renamed to textureArrayMaxLayerNum
  • GeometryObject::triangles replaced with GeometryObject::geometry.triangles
  • GeometryObject::boxes replaced with GeometryObject::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