- Metal: Load the shader cache again in DeviceRestore, like Vulkan. DeviceLost
saves it and throws everything away, so the next save (the next app switch,
or quitting) overwrote it with only what had been drawn since.
- Software renderer: Bring the post-shader back after a device loss.
DestroyDeviceObjects asks for it with restorePostShader_, but
CreateDeviceObjects cleared the flag again before BeginFrame could act on
it. The hardware backends recover through renderResized_.
- Forget pointers into the old device's objects in DeviceLost, rather than
relying on BeginFrame to come before the next flush: Vulkan's last pipeline
and bound views, Metal's UBO allocations, the GLES last linked shader and
bound texture.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>