[PATCH 01/10] dxgi/tests: Add IDXGIOutput ownership tests.
Henri Verbeet
hverbeet at gmail.com
Thu May 16 15:28:28 CDT 2019
On Wed, 15 May 2019 at 18:13, Zhiyi Zhang <zzhang at 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.
More information about the wine-devel
mailing list