- preparational step to enable HZB culling of invalidations in an uniform way.
- also add FComputeShaderUtils helper to set up an indirect dispatch.
#rb andrew.lauritzen
#preflight 6130818017a8610001b0cfc7
#ROBOMERGE-SOURCE: CL 17400532 via CL 17400838
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17400862 by ola olsson in ue5-release-engine-test branch]
Adding FRDGUploadData to create upload data directly from the GraphBuilder persistent memory.
#jira none
#rb Zach.Bethel
#preflight 60c0de551264df00015e307a
#ROBOMERGE-SOURCE: CL 16613071 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16613087 by christopher waters in ue5-release-engine-test branch]
* First all cards are allocated to a temporary atlas of fixed size set by r.LumenScene.CardCaptureAtlasFactor
* After cards are captured into temporary atlas, they are compressed into final BC compressed atlas. Compression can be disabled with r.LumenScene.SurfaceCache.Compress
* Atlas clears were also converted to support clearing compressed surfaces
* Atlas capture operations work on uploaded rect list, instead of a GPU generated card list
* Renamed r.LumenSurfaceCache.* to r.LumenScene.SurfaceCache.*
* Renamed LumenSceneLighting.usf to LumenSurfaceCache.usf
* Renamed LumenScenePrefilter.cpp to LumenSurfaceCache.cpp
Cuts down VRAM memory usage by 160mb
Compression performance on console: ~0.18ms for 1M texels (~0.9ms with UAV aliasing path, which is currently disabled due to missing pieces in RHI)
[CL 16160800 by Krzysztof Narkowicz in ue5-main branch]
- 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]
- Move VSM parameters into a single uniform buffer; required for base pass rendering.
- SRVs are initialized to dummy data until they are computed during the frame and subsequently updated before any VSM sampling.
- Make names and usage more consistent with other UB bindings in mesh passes
- Direct injection of VSM into translucent volume and fog
- Support VSM sampling in forward lighting shaders
- Enabled and bound currently for translucent forward and single pass water meshes
- Support VSM sampling in sky atmosphere and cloud rendering
- NOTE: Sky atmosphere LUT pass currently executes before BasePass and ShadowDepths so it will not sample proper data and throw a warning. Moving passes around to address this will come in a future commit.
#rb Brian.Karis, Ola.Olsson, Sebastien.Hillaire, Zachary.Bethel
#ROBOMERGE-OWNER: andrew.lauritzen
#ROBOMERGE-AUTHOR: andrew.lauritzen
#ROBOMERGE-SOURCE: CL 15649858 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v779-15635321)
#ROBOMERGE-CONFLICT from-shelf
[CL 15650486 by andrew lauritzen in ue5-main branch]
- Added GetLoadActionIfProduced helper function.
- Made GetPooledFreeBuffer attempt to reuse the existing allocation.
- Disable load action validation when SkipRenderPass is specified.
#rb none
#rnx
[CL 14957259 by zach bethel in ue5-main branch]