Matteo Bruni (@Mystral) commented about dlls/d3d9/tests/d3d9ex.c:
+ + reset_d3d9on12_args(&override_list); + override_list.Enable9On12 = TRUE; + override_list.pD3D12Device = (IUnknown *)d3d12device; + override_entries = 1; + hr = create_d3d9on12_device(&d3d9, window, &override_list, override_entries, &device); + if (FAILED(hr)) + { + skip("Failed to create a regular Direct3DDevice9, skipping d3d9on12 tests\n"); + goto out; + } + + hr = IDirect3DDevice9_QueryInterface(device, &IID_IDirect3DDevice9On12, (void **)&d3d9on12); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + IDirect3DDevice9On12_QueryInterface(d3d9on12, &IID_IDirect3DDevice9On12, (void **)&d3d9on12_2); + ok(hr == S_OK, "Got hr %#lx.\n", hr); I'm not sure what's the deal with this double QI on the d3d9 object (here and in the previous tests). It doesn't seem to add anything of value.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/4915#note_59050