Rez effects as separate pipeline variants: zero cost when no object is rezzing #1294
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#1294
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?
Rez effects (CombatFX #1211 / #1271,
gmdx_rezfx.glsl) are compiled into every world draw and pre-pass shader (clean_draw.vert/.frag,clean_draw_rigged.vert,clean_cluster_draw.mesh,clean_prepass_{normal,motion,blend,mask}.frag,clean_pick.frag), so every world pixel pays for them in shader size, compile time and registers, even with no object rezzing. Suspected in a 1.5.0 Beta 5 report from an AMD 9070 XT on Windows: a 31-minute shader compile, a blue void, and lower FPS.Goal: with no rez effect active, rez effects cost nothing.
Acceptance: world shader SPIR-V size and pipeline compile time measurably smaller than with the rez code included; identical images with rez effects off; rez in/out effects unchanged when on.
Implemented on branch
1294-rezfx-split(09f711d42c, afda34fccf; on the test branch as bdc9f4d48d / 63304d8967). Accepted for now; known limitations to investigate one by one later:Measured shader sizes (SPIR-V bytes): world vertex shaders 42-64% smaller, pre-pass FS 67-84%, G-buffer FS ~30%; the forward lit FS only ~5% (it is ~2.5 MB itself). Design note: agents/1294_rezfx_split.md (local).