<div dir="ltr"><div>Here's the device QI patches along with supporting patches to fix d3drm's QI behavior on unsupported interfaces.<br><br><br></div><div>Cheers,<br></div>Jam<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 11, 2015 at 5:44 PM, Aaryaman Vasishta <span dir="ltr"><<a href="mailto:jem456.vasishta@gmail.com" target="_blank">jem456.vasishta@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I just found an odd behavior while performing that test on windows.<br><br></div>Querying IDirect3DRMDevice2 from IDirect3DRMDevice1, then calling GetDirect3DDevice2 will return DD_OK but the device is set to NULL instead. It just verifies ddraw behavior but at the same time doesn't return an HRESULT error.<div><div class="h5"><br><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 11, 2015 at 1:58 AM, Stefan Dösinger <span dir="ltr"><<a href="mailto:stefandoesinger@gmail.com" target="_blank">stefandoesinger@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
</span><span>Am 2015-08-10 um 20:41 schrieb Aaryaman Vasishta:<br>
> I've written device QI tests (quick look:<br>
> <a href="http://pastebin.com/5bpRizmr" rel="noreferrer" target="_blank">http://pastebin.com/5bpRizmr</a> need to remove the last boolean flag<br>
> column as it's unnecessary now) and you can query up-down across<br>
> all versions.<br>
</span>The follow-up question is: What happens if you create an<br>
IDirect3DRMDevice via CreateDeviceFromD3D, QI IDirect3DRMDevice2 or 3<br>
from it and then call GetDirect3DDevice2. In plain ddraw you can't get<br>
a device2 from a device1, so I'd expect the d3drm call to fail in some<br>
way.<br>
<br>
I suspect your way to use QueryInterface in GetDirect3DDevice2 already<br>
implements the right behavior. Please add a test for this somewhere.<br>
<br>
I think testing this with a d3drm device that was created via<br>
CreateDeviceFromClipper should work too. Your<br>
IDirect3DDevice::QueryInterface(&IID_IDirectDrawSurface) call in the<br>
version 1 test to get the render target shows that the device was<br>
created as a v1 device.<br>
<span><br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v2<br>
<br>
</span>iQIcBAEBAgAGBQJVyQmKAAoJEN0/YqbEcdMwFi0P+gIvNUxDgs2Ooqnj54aEF8s6<br>
XK9b0oZ8rVZQ3TviMV/fIPCoMXeCdY8EFKEhEFVTigAVdJda2t84153Lrk+fTx6I<br>
h9DSLmrXh2fpuCvGv0efnGdDScUchdxqcp6M2u+Ha/AA8w+kaDtqqO2NXDHG0bnK<br>
5YoLT3SH3twbozTHDIaGlGWFIb/97Zw5ZcpdO9qG1ukt6Nlr/7p5kZeXQP+xU4Xk<br>
mATeMx4UPrTyRqCBq4nWirEk3h0SMWZHno+S6CAlYTdMohSvOmivWJAmQpL5YrzD<br>
grVvnMq+vTggqaKvV5d5VtZX82z8JQt1ZTzCLc1OOu+QnOTQsmEgmiycIGK25ngc<br>
eft/41TTVl3Lqipm75frGfyBm5bDe5DL/ELNJKKFvhVHohg/lcjoxONpJXVBCeb5<br>
RnqvLWxeg21h6kU9NYeeNjL7OUiMXyT1vYHmCki7QT5X2eXntJSmmJO3p2eXnrWY<br>
MDHGh1k8/rB5+wrKXyq9AMnPNesBLgBCMnFQGK+oij/FZhAPjEraisoz8qMAy5DZ<br>
EEYUwnLfJdYECQ3ZXNagmJOdecMvgSO9QrBzo1F0psiOdefrZzxdfomsUA8vJ7d7<br>
WkIWLw8ug/OjnOuT7Vr2Mkdy1GTQzkRn+Ih/oEButhNQ6u6IDLftNwBq9gn4hL/K<br>
niROk7IH4pH0DDZZ61Mf<br>
=5hW8<br>
-----END PGP SIGNATURE-----<br>
</blockquote></div><br></div></div></div></div></div></div>
</blockquote></div><br></div>