Original Task 3 had Bindless* methods calling the legacy Texture2D GetOrUpload* and converting the GL name to a bindless handle — producing a sampler2D texture sampled via sampler2DArray (GLSL type mismatch). Revised: Task 3 introduces three parallel cache dictionaries (_bindlessBySurfaceId / _bindlessByOverridden / _bindlessByPalette) storing both the GL texture name and the resident handle. Bindless* methods call DecodeFromDats + UploadRgba8AsLayer1Array directly with their own caching; legacy three-cache structure mirrored exactly. Task 4 (Dispose) updated to: (1) MakeNonResident on every bindless handle FIRST, (2) DeleteTexture on every Texture2DArray name, (3) DeleteTexture on every legacy Texture2D handle. Order matters per ARB_bindless_texture spec. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| plans | ||
| specs | ||