On Thu, 16 May 2019 at 23:37, Paul Gofman gofmanp@gmail.com wrote:
On 5/16/19 21:01, Henri Verbeet wrote:
On Wed, 15 May 2019 at 19:37, Paul Gofman gofmanp@gmail.com wrote:
@@ -712,9 +712,13 @@ static HRESULT WINAPI d3d_device1_Execute(IDirect3DDevice *iface, if(!buffer) return DDERR_INVALIDPARAMS;
- if (FAILED(hr = IDirect3DDevice3_SetCurrentViewport
(&device->IDirect3DDevice3_iface, &viewport_impl->IDirect3DViewport3_iface)))
return hr;
This is not an entirely new issue, but does remind me about the issue of how executing an execute buffer affects the device state. That's not an issue for devices created as version 1 devices, since there's no way to query the current state by the application. However, it's also possible to QI the version 1 interface from a version 2 or 3 device.
I don't know whether ExecuteBuffer should preserve the previous state or not, I didn't test that yet. But I should note that before this patch it was not preserving states as well, but it would also not deactivate the lights from previous viewport potentially set in the earlier call to ExecuteBuffer or some other way.
Yeah, it doesn't directly impact this patch, but I did want to raise the issue.