HUD hover text rendered in the world instead of on the HUD #92
Labels
No labels
amd
avatars
bug
builder
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
rendering
rt
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
backspace119/Slipstream#92
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?
Reported by tester (before the #90 crash): hover text (llSetText) that belongs on a HUD was drawn in the world at a seemingly random spot - possibly near the sim centre / region origin.
How LL decides
LLHUDText::mOnHUDAttachmentroutes text: HUD texts go tosVisibleHUDTextObjects-> drawn byLLHUDText::renderAllHUD()with the HUD camera; world texts viaLLHUDObject::renderAll()->LLHUDText::render()(skips HUD texts). The flag is set when the text is created (llviewerobject.cpp:6085,isHUDAttachment()) and when an object is attached/detached (llviewerjointattachment.cpp:232-241 / 332-341, root + children).Hypotheses
LLHUDObject::renderAll()with the world camera andLLHUDText::renderAllHUD()with the HUD camera only whenworld.hud_enabled- check the HUD camera matrices for HUD text (setVKOverlayCamera(world.hud_proj_ui, world.hud_model)) and that nothing HUD-flagged reaches the world pass.Repro needed
Which HUD (worn from inventory vs experience temp-attach), and does the text move with the camera or sit at a fixed world spot?
Tester on vk-2026.09.27.2: HUD text still renders in-world, so the root-flag change (
654c07053f) wasn't the cause (harmless, kept).Real cause:
hud_render_text(llhudrender.cpp) projects each label withglm::project(pos, get_current_modelview(), get_current_projection(), viewport). LL's GL HUD pass loads the HUD matrices into those first; under VK they hold the world camera all frame (buildVulkanWorldFrame), so HUD-space positions were projected through the world camera -> text in-world near the region origin.Fix (pending build/tester): the VK uiRender HUD-text block loads
get_hud_matrices()(GL convention) aroundLLHUDText::renderAllHUD()and restores the world matrices after.