Status: Implemented. Geode and the editor render and present through Donner's own GPU runtime: native Metal on macOS, native Vulkan on Linux, and the browser's WebGPU in the WebAssembly editor and standalone Geode packages. No production build or shipped artifact contains the transitional WebGPU adapter or a Rust-built GPU library. This page keeps the design number and points to the current documentation; the full design is in Git history.\ Created: 2026-07-05\ Updated: 2026-10-06\ Author: Claude Fable 5.1\ Drafted by: GPT-5.6 Sol
donner::gpu is an original C++20 runtime between Geode and editor rendering and the platform GPU. It validates resources and handle lifetimes, records commands, submits work, maps buffers and presents frames, with backends for Metal, Vulkan and the browser's navigator.gpu. It is not a WebGPU C ABI. Every production shader is authored as WGSL, and Donner's own compiler turns it during C++ constant evaluation into the frozen WGSL, MSL or SPIR-V projection its product links; that compiler never runs at run time. When a shader module is created, Metal compiles the frozen MSL text and the browser compiles the frozen WGSL text, while Vulkan takes the SPIR-V words.
Each platform defaults to its own backend, and a requested backend the host cannot provide fails closed. Runtime devices over one selected root share its native device and loss state while keeping their own handles and serials, and a texture of one runtime device reaches another only through export and registration. Waits that detect a hung device measure time without progress rather than the time a whole backlog takes, except two Vulkan waits whose progress the queue cannot judge. Geode's queue-idle drain, a Metal present, Metal's wait for room under its command-buffer backstop, the editor's native UI submission admission and framebuffer readback, and the cross-context registration helper declare the device lost when progress stops; the other waits, such as a host access to a busy buffer, a texture upload and the Metal teardown drain, give up without declaring a loss. The one remaining wgpu-native consumer is a checksum-pinned, Linux-only, test-only resvg comparison reference; the lexical no-Rust verifier and the configured dependency audits keep it out of every product.
The browser editor keeps its device, retained tile textures and canvas on the application thread. Raster workers dispatch validated commands and resource identities; the desktop compositor draws those retained tiles directly into the canvas backbuffer. The GPU runtime reference describes explicit CPU captures and the normal browser residency gates.
The cutover was qualified on one integrated revision against gates for pixels, validation, bounded resources, frame time, artifact size, dependency closure and an independent security and implementation-provenance review; the pull request that closes #1413 records the evidence for each gate. That review found no critical or high findings (summary), and changes made after the revision it covered fall to the v0.8 release-candidate review in #1422.
The maintainer decided:
The full design, with its implementation checklist, runtime contracts, verification tables and cutover gates, is in Git history at e1016864.