- Views are cached on RHI transient resources; view renames are no longer necessary.
- RHI Transient resources utilize a single cache per heap keyed off of the descriptor + offset. Resource caches and heaps are garbage collected.
- CPU performance is effectively equivalent to the existing pooled resource method.
- Added common RHI transient resource allocator implementation in RHI core; significantly reduces the amount of platform code.
- Resource aliasing overlaps are tracked by the RHI and submitted through an acquire operation.
- Fixed D3D12 implementation to support multi-GPU.
- Removed condition that excluded small (<64k) buffers in the transient allocator.
- RHI validation now checks that resource overlaps are valid; i.e. if an overlap occurs between resource A and B during an acquire of B, validation checks that A has been discarded.
#rb graham.wihlidal, luke.thatcher, kenzo.terelst
[CL 16076280 by zach bethel in ue5-main branch]
- Replaced legacy transient support from RDG and replaced with new API.
- Reworked acquire / discard operations a bit and added RHI validation to track correctness.
- Reworked RDG barrier batching to include acquire / discard operations.
- Hardened render pass merging logic and expanded to support lifetime extension of transient resources.
- Added transient tag to RDG insights to track which resources are transient.
#rb luke.thatcher, kenzo.terelst
[CL 15726534 by zach bethel in ue5-main branch]
#jira UE-104918
#rb zach.bethel
#ROBOMERGE-SOURCE: CL 15628920 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v777-15581079)
[CL 15628924 by steve smith in ue5-main branch]
#jira UE-104918
#rb zach.bethel
#ROBOMERGE-SOURCE: CL 15628768 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v777-15581079)
[CL 15628769 by steve smith in ue5-main branch]
- Stencil SRVs didn't have their plane index set appropriately, causing SRVGraphics/SRVCompute access to be logged against the depth plane instead, resulting in spurious validation errors.
- Filter for unique resources in RDG's handling of Begin/EndUAVOverlap. The tracking for overlaps is kept on the underlying resource, not the view, meaning if two views to the same resource are passed to Begin/EndUAVOverlap, it will trigger the Begin/End mismatch validation.
Add support for enabling RHI validation logging on the command line
- Use -RHIValidationLog=" ... resource names ... ", where the list of names are comma separated.
- Replaces the hardcoded GAutoLogResourceNames array in RHIValidation.cpp.
Minor change: switch ordering of args in SpecificUAVOverlap to match the other state validation functions.
#rb Christopher.Waters
[CL 15522344 by Luke Thatcher in ue5-main branch]