[GL-C3] LLImageGL → LLTextureData + LLPixelFormat #72
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#72
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?
Scope: Keep the CPU pixels (
mVKCpuData), discard state machine, serial/generation,setSubImageVK,replaceVKCpuData, alpha analysis and pick mask. DropmTexName, bindless and GL upload. TheLLPixelFormatenum (components, BGR order, type) replaces GL enums inLLImageGL/setExplicitFormat/the media plugin messages, with the translation at the plugin boundary. Material store fields become VK texture indices (deletes thegetBindlessHandlecalls).Prereq: B4, B5
Acceptance: Textures, media on a prim (CEF/VLC/GStreamer), UI images, picking transparent HUDs, and the "cpu tex" memory line unchanged
Risk: high (L)
Shared acceptance baseline: links; logs in under VK and renders prims/mesh/rigged/terrain/water/sky/particles; click-select object/avatar/attachment; region crossing + teleport; no
GLSL Compilation Error|SIGSEGVin the log.Source: research/gl_removal_map.md
Status check (verification sweep): not done. LLImageGL is reduced to CPU pixels + VK bookkeeping (
96fa180da0, v1.0.0-beta.1), but it's still named LLImageGL (229 lines across 41 files). LLTextureData and LLPixelFormat don't exist, and media plugins still use GL format enums (9ebabce7c7defines GL_BGRA_EXT for them).Verified against forgejo/main: PARTIAL, leaving open. Done: LLPixelFormat/LLPixelType enums exist (llcommon/llpixelformat.h) and replace GL enums in LLImageGL/setExplicitFormat; mTexName is gone. Remaining: LLImageGL is still the class (not LLTextureData) and still carries ~11 GL-REMOVAL-STUB blocks (llrender/llimagegl.h:64,80,108,111,130,163,195,218,294,372,410: createGLTexture/destroyGLTexture/getHasGLTexture/setFilteringOption/LLImageGLThread/sDefaultGLTexture etc.); bindless leftovers: LLCleanTexture::getBindlessHandle stub returning 0 (llcleantexture.h:41) with 4 call sites (llcleanmaterialstore.cpp:242-247), bindlessGeneration (llcleanmaterialstore.cpp:218); material store fields are still *_handle, not VK texture indices; LLImageGL name/GL-flavored API (createGLTexture, setGLTextureCreated) still used by lldynamictexture.cpp and others.
Pushed to main at
07c8a3ac73.LLImageGL->LLTextureData(renamed throughout), GL stubs deleted, material store fields renamed. To test: texture streaming, avatar bakes, previews, media, minimap and world map.Shipped in a published release and tested; closing (testing-lane sweep 2026-10-11).