2 pass occlusion culling functioning for primary and shadows.
Optimization: share corners in dicing to reduce VGPRs. Currently used for cluster rasterization. Patch rasterization is more complicated and a toss up currently.
#rb graham.wihlidal
#fyi rune.stubbe
#preflight 642ca5e1da7f9583709982ed
[CL 24936050 by Brian Karis in ue5-main branch]
Disabled for now.
Fixed near plane culling.
Cluster dicing. If too large output to recursive patch splitting. Frustum culling for patches. Binning for visible patches. Programmable patch dicing.
#rb rune.stubbe
#preflight 63f929f0a134e0b059cee370
[CL 24411577 by Brian Karis in ue5-main branch]
Disabled for now. WIP
Dice phase only using wave wide work distribution.
Implements both uniform and snap and tessellation table tessellation schemes.
Tessellation tables have vertex caching implemented in the shader but the index buffer preconditioning code it relies on has been lost.
Displacement material control for now is hacked to be from OpacityMask.
Barycentrics for deferred materials are derived through iterative projection.
WIP on GlobalWorkQueues which are a reusable refactoring of Rune's MPMC queue and persistent threads algorithm used in hierarchical cluster culling.
#rb rune.stubbe
#preflight 63bca3a3d862fdd347905dd5
[CL 23631565 by Brian Karis in ue5-main branch]
Added wave wide work distribution of coverage testing through bitmask tiles. This didn't prove to be faster in my test but I'm checking it in for posterity and the work distribution code is good and may be useful elsewhere. We can delete the tile distribution from the rasterizer later.
#rb rune.stubbe
#ROBOMERGE-AUTHOR: brian.karis
#ROBOMERGE-SOURCE: CL 18415357 in //UE5/Release-5.0/... via CL 18415390
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18415405 by brian karis in ue5-release-engine-test branch]