We can just make that an explicit boolean field. See how we handle IID_IDirect3D9Ex.
Thanks, I've updated it based on that.
d3d9on12 is still a separate object in the latest revision.
Well, we aren't actually checking anything; we're printing a FIXME. But moreover I don't understand what there is to check. What does it mean for a d3d12 device to "match" the d3d9 device?
According to the test, the D3D12 device retrieved from the Direct3DDevice9On12 object should match the one set in the override list.
Why does that affect whether d3d9on12 is a separate object? Just store the d3d12 device pointer in whatever existing objects need it. If IDirect3DDevice9On12 is an interface on the directx object, store it in the directx object.