On 19 September 2017 at 08:00, Nikolay Sivov <nsivov(a)codeweavers.com> wrote:
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/d3d9/tests/device.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+)
I think this would apply to d3d8 as well.
+ hr = IDirect3DDevice9_GetBackBuffer(device, 0, 0, D3DBACKBUFFER_TYPE_MONO, &surface); + ok(SUCCEEDED(hr), "Failed to get backbuffer, hr %#x.\n", hr); + + hr = IDirect3DSurface9_LockRect(surface, &lockrect, NULL, D3DLOCK_DISCARD); +todo_wine + ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#x.\n", hr); ... + hr = IDirect3DDevice9_Reset(device, &present_parameters); + ok(SUCCEEDED(hr), "Failed to reset device, hr %#x.\n", hr); It's interesting that that works, actually. Since the LockRect() succeeds on Wine, the surface is mapped when the reset happen. That seems like the kind of thing that shouldn't be allowed.