v0.30.27 — GLES 3D rendering: MappedAtCreation flush + depth fixes
Fixed
-
GLES: MappedAtCreation buffer data silently discarded on Unmap —
UnmapBufferonly flushed shadow data to GL whenBufferUsageMapWritewas set.
Per WebGPU spec,MappedAtCreationdoes NOT requireMapWriteusage. Buffers
withUniform|CopyDst+MappedAtCreation(the standard g3d pattern) had their
data thrown away — zero MVP matrices, zero vertices, zero indices. Root cause of
invisible 3D geometry on GLES. (#284) -
GLES: depth/stencil attachment point chosen by format —
GL_DEPTH_ATTACHMENTfor depth-only formats,GL_DEPTH_STENCIL_ATTACHMENTfor
combined. Wrong attachment point caused FBO incomplete (0x506). Rust wgpu-hal
parity (command.rs:577-580). (#284) -
GLES: depth clear masked by stale pipeline state —
ClearDepthCommandnow
callsglDepthMask(true)+glClearDepth(value)beforeglClear. Prevents
staleDepthMask(false)from prior pipeline silently masking depth clear. (#284) -
GLES: viewport depth range ignored —
SetViewportCommandnow calls
glDepthRange(minDepth, maxDepth). Was ignoring depth range fields entirely.
Rust wgpu-hal parity (queue.rs:1295-1296). (#284)
Added
gl.Context.ClearDepth()andgl.Context.DepthRange()wrapper methods for
both Windows (syscall, double) and Linux (goffi, float32 for GLES).
Changed
- deps: gpucontext v0.22.0 → v0.23.0