Two-phase occlusion culling: switch on/off automatically by how much it culls #806
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#806
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two-phase Hi-Z occlusion culling (
RenderVKOcclusion2Phase) is now off by default (a911265b9b). In an open outdoor scene it costs more than it saves. On a GTX 1080 at 4K with Firestorm-equivalent settings, turning it off took the frame from 25.4 to 22.1 ms and from 23.6 to 20.9 ms in two A/B pairs, about 3 ms either way. The second pre-pass phase, the Hi-Z build and the occlusion test cost more than the little geometry they hide. In dense interiors and cities it should still pay off.Goal: turn it on and off by itself, based on how much it actually culls in the current scene, without causing hitches or popping.
Things to get right
p2+c_hiz+c_occl_p2+c_occl_splitmarkers. Compare against an estimate of the work it saves. Smooth the signal over seconds, not frames.RenderVKOcclusionCullboth off, no Hi-Z is built, soRenderVKClusterOcclusionis idle too. Decide whether a Hi-Z should still be built cheaply for cluster culling while two-phase is off, and measure that on its own.Settings stay available for A/B:
RenderVKOcclusion2Phaseforces it on, and an auto mode would sit alongside it.