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