mirror of
https://github.com/storytold/designcraft.git
synced 2026-10-29 12:46:53 -06:00
`choose` pruned the failed list to this platform's candidates, which dropped an OpenGL entry on macOS, where Metal is the only candidate. But OpenGL is not only a candidate: off Windows it is the in-process fallback that `instance_backends` adds whenever it has not failed. So a start that recorded OpenGL and never showed a frame had the entry pruned a line later, and OpenGL went straight back into the instance — the backend that had just failed was offered again on every start, with nothing able to retire it. An entry that can still be reached is kept now. A non-candidate entry still cannot be chosen as a backend, since `pick` only looks at candidates, so which backend starts is unchanged; it only stops a failed OpenGL being handed back to the instance. This is what `a_start_records_its_backend_until_a_frame_is_presented` asserts, and that test failed on macOS: `cargo xtask ci` stopped in the `designcraft` bin before the rest of the workspace ran, so the gate could not go green there at all.