v0.50.5
Fixed
-
Software backend offscreen textures — split
deviceReadyfromgpuReadyin GPU shared state. On rasterAtlas strategy (software adapter), device is alive for texture/buffer operations while shape pipelines (SDF/stencil/convex) are skipped.CreateOffscreenTexturenow checksdeviceReadyinstead ofgpuReady.ensurePipelines()skips shape pipelines on rasterAtlas to prevent SPIR-V hang. Follows Skia GraphitekRasterAtlaspattern. -
GPU tests hardcoded MSAA sampleCount=4 — 48 test sites replaced with
testSampleCount(t, device)probe that delegates to productionresolveSampleCount(Skia Graphite pattern). Tests now pass on software backends (llvmpipe, SwiftShader) that only support sampleCount=1.
Added
-
Software offscreen upload —
uploadPixmapToView()uploads CPU-rasterized pixmap to offscreen GPU texture viaQueue.WriteTextureon rasterAtlas strategy. RGBA→BGRA swizzle.CopyDstusage on offscreen textures. -
SurfacePixelWriter zero-copy path — duck-typed interface in
ggcanvas.Render(). On software backend, writes pixmap directly to surface framebuffer viawgpu.Surface.PresentPixels(single memcpy+swizzle, no render pass). Damage rects forwarded before present.
Changed
- Dependencies: wgpu v0.30.10 → v0.30.19, gogpu v0.44.1 → v0.44.6, gpucontext v0.21.0 → v0.21.1, goffi v0.5.6 → v0.6.0, golang.org/x/image v0.43.0 → v0.44.0, golang.org/x/text v0.39.0 → v0.40.0, golang.org/x/sys v0.46.0 → v0.47.0.