You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix arena double-release on ordered flush failure and harden disposal
An exception during an ordered flush skipped copying the executor's replacement
arenas back to the caller, so the finally returned already-disposed arenas to
the reuse caches; a later drain then released their buffers a second time,
corrupting native memory. Arenas now copy back unconditionally, and both arena
types dispose behind an interlocked flag, nulling each buffer so a stale
reference fails CanReuse instead of touching freed memory.
Disposal is hardened across both projects: guard flags set before releases,
exception-safe multi-buffer creation, per-entry isolation in the deferred
status harvest, retained-scene item release on the empty and exception paths
of scene creation, root/region canvases sharing one deferred-image list, and
decoration ink buffers owned by the glyph builder base with a chained virtual
dispose.
Software adapters are rejected at adapter selection via wgpuAdapterGetInfo;
GPU-less environments are served by the CPU backend. The staged submission,
dispatch, and scene-render probes and the ForceFallbackAdapter option are
removed along with the CI diagnostic capture.
0 commit comments