[GL-C3] LLImageGL → LLTextureData + LLPixelFormat #72

Closed
opened 2026-09-27 05:33:52 +00:00 by sky_line · 4 comments
Owner

Scope: Keep the CPU pixels (mVKCpuData), discard state machine, serial/generation, setSubImageVK, replaceVKCpuData, alpha analysis and pick mask. Drop mTexName, bindless and GL upload. The LLPixelFormat enum (components, BGR order, type) replaces GL enums in LLImageGL/setExplicitFormat/the media plugin messages, with the translation at the plugin boundary. Material store fields become VK texture indices (deletes the getBindlessHandle calls).

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|SIGSEGV in the log.

Source: research/gl_removal_map.md

**Scope:** Keep the CPU pixels (`mVKCpuData`), discard state machine, serial/generation, `setSubImageVK`, `replaceVKCpuData`, alpha analysis and pick mask. Drop `mTexName`, bindless and GL upload. The `LLPixelFormat` enum (components, BGR order, type) replaces GL enums in `LLImageGL`/`setExplicitFormat`/the media plugin messages, with the translation at the plugin boundary. Material store fields become VK texture indices (deletes the `getBindlessHandle` calls). **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|SIGSEGV` in the log. Source: research/gl_removal_map.md
Author
Owner

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 (9ebabce7c7 defines GL_BGRA_EXT for them).

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 (9ebabce7c7 defines GL_BGRA_EXT for them).
sky_line added this to the Slipstream project 2026-10-06 15:04:15 +00:00
Author
Owner

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.

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.
Author
Owner

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.

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.
Author
Owner

Shipped in a published release and tested; closing (testing-lane sweep 2026-10-11).

Shipped in a published release and tested; closing (testing-lane sweep 2026-10-11).
sky_line 2026-10-11 13:24:47 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#72
No description provided.