For Forward ES31
Default SceneColor RG11B10 + R16F\32F Depth texture
With PropagateAlpha on RGBA16F + R16F\32F
PostProcess we sample SceneDepthAux for Depth
For Deferred ES31
SceneDepthAux only for Metal
PropagateAlpha not working yet
PostProcess we sample SceneDepthTexture for Depth
cvar to change Depth texture from 16 to 32Fr.Mobile.SceneDepthAux
cvar for AlphaPropagate r.Mobile.PropagateAlpha
#jira UE-98033
#rb Dmitriy.Dyomin, Carl.Lloyd, Jack.Porter
[CL 16644095 by Florin Pascu in ue5-main branch]
r.LumenScene.SurfaceCache.Reset - one time reset
r.LumenScene.SurfaceCache.ResetEveryNthFrame - reset every N-th frame
[FYI] Patrick.Kelly, Daniel.Wright
#ROBOMERGE-SOURCE: CL 16641209
#ROBOMERGE-BOT: (v831-16623017)
[CL 16641217 by krzysztof narkowicz in ue5-main branch]
The cluster AABB update can run onto non-initialized data due to the cluster info not being filled by the culling pass, if this one does not happen/or has culled the particular cluster, causing GPU crashes.
#rb none
#ROBOMERGE-SOURCE: CL 16640350
#ROBOMERGE-BOT: (v831-16623017)
[CL 16640391 by charles derousiers in ue5-main branch]
- Added instance data validation
- Added general load balancer for instance processing on GPU (will move to own files later)
- Added initial GPU-side write access API for GPU scene.
- Addded specialized kernel to update primitive IDs in instances when that is the only change.
#rb graham.wihlidal
#jira UE-116671
#preflight 60c25d7b1264df0001aab80b
#ROBOMERGE-SOURCE: CL 16628528
#ROBOMERGE-BOT: (v831-16623017)
[CL 16628539 by ola olsson in ue5-main branch]
- also removed some dead code (debug code that was inactive)
#jira UE-117650
#rb rune.stubbe
#preflight 60c1e70f1ab0310001af32ff
[CL 16620830 by Ola Olsson in ue5-main branch]
The previous method has been replaced with a tiled work queue system.
At the high-level, Lumen cards are dispatched against a batch group of N lights (default=16).
Cards are chopped into 8x8 tiles of work, corresponding to the minimum Lumen card size, and subject to temporal and light culling.
Tiles which pass the culling stages are submitted to the raygen shader, where visibility is determined per light and stored in a 32-bit shadow mask.
Virtual shadow mask lookup was added as a potential late-time culling criteria in the ray-gen shader, but did not provide any noticeable traversal speedup. It is currently permuted out.
The shadow mask is applied as the visibility score to the direct lighting stage and used for off-screen shadowing.
r.LumenScene.DirectLighting.HardwareRayTracing (default=1)
Timing results for a single frame in Sun Temple with r.LumenScene.Lighting.ForceLightingUpdate=1 & r.LumenScene.DirectLighting.ForceOffscreenShadowing=1
Software Ray Tracing: 9.20ms
Hardware Ray Tracing: 8.16ms
Under normall circumstances, r.LumenScene.DirectLighting.ForceOffscreenShadowing=0 and provides a significant speedup for software tracing:
Software Ray Tracing: 4.83ms
Hardware Ray Tracing: 8.16ms
We expect to reclaim some speedup for hardware ray tracing by reordering the pipeline such that virtual shadow mapping can pre-populate the shadow mask and act as a more performant culling criteria.
#rb krzysztof.narkowicz
#ROBOMERGE-SOURCE: CL 16618392
#ROBOMERGE-BOT: (v828-16531559)
[CL 16618400 by patrick kelly in ue5-main branch]
- AsciiTexture initialization writes past the end of the RHI allocation
- Loop was written as though the pixel format of the texture is PF_RGBA8, but is actually PF_R8, causing a 3 byte stomp at the end of the allocation.
#rb Andy.Firth
[FYI] charles.derousiers
#ROBOMERGE-SOURCE: CL 16613356
#ROBOMERGE-BOT: (v828-16531559)
[CL 16614308 by luke thatcher in ue5-main branch]
Adding FRDGUploadData to create upload data directly from the GraphBuilder persistent memory.
#jira none
#rb Zach.Bethel
#preflight 60c0de551264df00015e307a
[CL 16613071 by christopher waters in ue5-main branch]