On Wed, 15 May 2019 at 18:13, Zhiyi Zhang zzhang@codeweavers.com wrote:
- if (!pD3DKMTCheckVidPnExclusiveOwnership || pD3DKMTCheckVidPnExclusiveOwnership(NULL) == STATUS_PROCEDURE_NOT_FOUND
|| !pD3DKMTCloseAdapter || !pD3DKMTOpenAdapterFromGdiDisplayName)
Formatting. (Double indent for line continuations.)
- lstrcpyW(open_adapter_gdi_desc.DeviceName, display1W);
- status = pD3DKMTOpenAdapterFromGdiDisplayName(&open_adapter_gdi_desc);
- ok(status == STATUS_SUCCESS, "Got unexpected status %#x.\n", status);
Wouldn't it make more sense to use D3DKMTOpenAdapterFromLuid(), so that we can use the adapter corresponding to the device?
- /* Swapchain in fullscreen mode */
- hr = IDXGISwapChain_SetFullscreenState(swapchain, TRUE, NULL);
- /* DXGI_ERROR_NOT_CURRENTLY_AVAILABLE on some machines. DXGI_ERROR_UNSUPPORTED on Win 7 testbot. */
- if (hr == DXGI_ERROR_NOT_CURRENTLY_AVAILABLE || broken(hr == DXGI_ERROR_UNSUPPORTED))
- {
skip("Failed to change fullscreen state.\n");
goto done;
- }
- todo_wine_if(is_d3d12) ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
- Sleep(timeout);
Is that Sleep() really required?
- /* Calling IDXGIOutput_ReleaseOwnership makes it unoccluded. So we can be confident about IDXGIOutput_TakeOwnership
* was called in IDXGISwapChain_SetFullscreenState */
- if (output) IDXGIOutput_ReleaseOwnership(output);
- Sleep(timeout);
Likewise.
- status = pD3DKMTCheckVidPnExclusiveOwnership(&check_ownership_desc);
- ok(status == STATUS_SUCCESS || status == STATUS_GRAPHICS_PRESENT_UNOCCLUDED, "Got unexpected status %#x.\n",
status);
- if (output) hr = IDXGIOutput_TakeOwnership(output, device, FALSE);
- todo_wine ok(hr == (is_d3d12 ? E_NOINTERFACE : DXGI_ERROR_NOT_CURRENTLY_AVAILABLE), "Got unexpected hr %#x.\n", hr);
- ok(status == STATUS_SUCCESS || status == STATUS_GRAPHICS_PRESENT_UNOCCLUDED, "Got unexpected status %#x.\n",
status);
This ok() seems redundant.
- /* Swapchain in windowed mode */
- hr = IDXGISwapChain_SetFullscreenState(swapchain, FALSE, NULL);
- todo_wine_if(is_d3d12) ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
- Sleep(timeout);
And another.