Probe captures: scheduled face rides the realtime multi-view cull (GPU-patched ring entry) #832
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#832
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?
Probe-capture culls cost about as much as capture shading on a GTX 1080 at 4K, high settings:
pr_cull+pr_rt_cull~1.27 ms (pluspr_patch0.38).Opportunity (found in #829)
The scheduled probe face can ride along on the realtime probe's multi-view cull. This is already plumbed:
job.mvSched, view / block 7;schedparameter andslotBinrecordProbeMvCull.It is disabled at llcleanrenderervk.cpp ~16587 (
sj.mv = sj.mvSched = false).The one blocker:
slotB's cull parameters are built from the CPU-side origin / clips, but with #478 GPU jobs the GPU decides those. It needs a GPU-patched ring entry, the same mechanismprbPrepareJobalready uses forringCull[f].Payoff: removes the scheduled face's own cull and alpha sort (most of
pr_cull) whenever the realtime probe runs (probe detail >= 2).Reusing the MAIN view's cull is not safe: probe frusta cover directions behind the camera.
Also look at
pr_patch(0.38 ms) can be amortised;Measure
Serial on the GTX 1080 at 4K (high, realtime probes on and off):
pr_cull,pr_rt_cull,pr_patch, frame total; probe image parity (the same draws must reach each face); also the RTX 5090.Merged (
be39ca2149). The scheduled probe face rides the realtime multi-view cull again (RenderVKMultiViewScheduled, reused, default on); its slot_b cull entry is GPU-patched from the scheduled job. clean_cull.comp phases 5-7 now gate each view on its own instance count (an empty realtime or scheduled job no longer empties or pollutes the other).GTX 1080, 4K, high, serial, interleaved on/off:
pr_rt_cull0.36 and nopr_cull; off, 0.26 + 0.26.pr_faceis 0.29-0.31 vs 0.41.pr_patchreads 0.01 ms in serial: the earlier 0.38 was drain absorbed from earlier work, not patch work.The earlier "~1.27 ms of probe culls" was mostly async attribution smear; serial, the culls were ~0.5 ms.
Still to do:
Optional follow-up: merge the two patch dispatches into one.
Fixed in Slipstream 1.3.0 (stable): https://git.slipstreamviewer.org/sky_line/Slipstream/releases/tag/v1.3.0
If you still see this on 1.3.0, reply here and we'll reopen it.