LL perf (Objects/world): Full updates re-fire every extra-parameter handler, with no equality check #310
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#310
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?
From the LL-origin inefficiency audit (finding O2). File/line references are from commit
0229f8872c; re-locate them before working.Full updates re-fire every extra-parameter handler, with no equality check
unpackParameterEntry(llviewerobject.cpp:6606-6620, re-read) always unpacks and callsparameterChanged(...). OnlysetParameterEntry(:6735-6752) compares.setRenderMaterialIDs(:7808-7820) claims "extra params are checked for equality on unpacking". That is false on the network path.setGLTFRenderMaterial(nullptr), which can flicker override materials untilonMaterialCompletegGLTFMaterialList.getMaterialplusstd::functionallocationsrebuildMaterial,setObjectCostStaleupdateReflectionProbePtrpushing duplicate entriesparameterChanged(false)on every full update (:1587-1594).in_use, fire only on change.Verify the cost (profile or timer) before and after changing it.