Philip Rebohle
154ce70b5c
dxgi: Signal the frame latency event on present.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 19:58:11 +02:00
Philip Rebohle
86c1ca8760
dxgi: Create frame latency events for d3d12 swapchains if requested.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 19:58:11 +02:00
Hans-Kristian Arntzen
bbf2836a85
dxgi: Implement dxgi_factory_CheckFeatureSupport().
...
Some d3d12 games gate their use of sync interval 0 on support for
DXGI_FEATURE_PRESENT_ALLOW_TEARING.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-10 19:09:43 +02:00
Zhiyi Zhang
5928da917d
dxgi/tests: Add a test for IDXGIFactory5 feature support queries.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-10 19:09:40 +02:00
Zhiyi Zhang
f91dd56ccd
wined3d: Do not clip the cursor after changing display modes.
...
DirectDraw should clip the cursor to the primary monitor only when the
cooperative level is DDSCL_EXCLUSIVE. For Direct3D 8, 9 and DXGI,
changing display modes shouldn't clip the cursor as tests showed.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 21:04:04 +02:00
Zhiyi Zhang
f47f7c66cc
dxgi/tests: Test cursor clipping.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-08 21:01:18 +02:00
Zhiyi Zhang
ab59ed1a4c
dxgi/tests: Fix some test failures in test_find_closest_matching_mode().
...
DXGI_MODE_SCALING_CENTERED and DXGI_MODE_SCALING_STRETCHED modes may be
supported by drivers. When these flags are specified, IDXGIOutput_FindClosestMatchingMode()
will try to find a mode matching the scaling field first, which may not
be the same as the original mode. So make sure such a mode exists before
finding them.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-08 21:01:18 +02:00
Zhiyi Zhang
03885ef4a1
dxgi/tests: Fix uninitialized variable warnings.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 20:55:48 +02:00
Alexandre Julliard
0e91ced126
dxgi: Use standard dlopen() instead of the libwine wrappers.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:41 +02:00
Zhiyi Zhang
b07e8b3edb
wined3d: Remove device_name and device_name_size from struct wined3d_adapter_identifier.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 20:33:56 +01:00
Zhiyi Zhang
47a069f964
dxgi/tests: Test detaching outputs.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-24 20:42:59 +01:00
Zhiyi Zhang
5dae33dc3c
wined3d: Refactor wined3d_get_output_desc() to wined3d_output_get_desc().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 20:24:56 +01:00
Zhiyi Zhang
e6368b9c10
wined3d: Pass a struct wined3d_adapter pointer to wined3d_get_device_caps().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:30:58 +01:00
Zhiyi Zhang
591068cec0
wined3d: Refactor wined3d_get_adapter_identifier() to wined3d_adapter_get_identifier().
...
wined3d_adapter_get_identifier() uses a struct wined3d_adapter pointer
as parameter.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:55:05 +01:00
Zhiyi Zhang
a8072e0841
wined3d: Pass a struct wined3d_adapter pointer to wined3d_device_create().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:55:00 +01:00
Zhiyi Zhang
c51e97bc0d
wined3d: Refactor wined3d_find_closest_matching_adapter_mode() to wined3d_output_find_closest_matching_mode().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-06 17:54:09 +01:00
Zhiyi Zhang
aa177f6afc
wined3d: Refactor wined3d_get_adapter_display_mode() to wined3d_output_get_display_mode().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-06 17:54:06 +01:00
Zhiyi Zhang
be5be58769
wined3d: Pass a struct wined3d_output pointer to wined3d_swapchain_state_resize_target().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-06 17:53:57 +01:00
Zhiyi Zhang
878211c36f
wined3d: Pass a struct wined3d_output pointer to wined3d_swapchain_state_set_fullscreen().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-05 19:49:44 +01:00
Zhiyi Zhang
1bb5c9187c
wined3d: Refactor wined3d_get_adapter_mode_count() to wined3d_output_get_mode_count().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-05 19:49:37 +01:00
Zhiyi Zhang
a0dbb1e469
wined3d: Refactor wined3d_enum_adapter_modes() to wined3d_output_get_mode().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-05 19:49:33 +01:00
Zhiyi Zhang
ca9b5f6748
wined3d: Introduce wined3d_adapter_get_output().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 20:01:25 +01:00
Zhiyi Zhang
2f9037c75d
wined3d: Introduce wined3d_adapter_get_output_count().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 20:01:21 +01:00
Zhiyi Zhang
ba4ee49705
dxgi: Check NULL output parameter in dxgi_adapter_EnumOutputs().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-20 16:14:07 +01:00
Zhiyi Zhang
23a8887ded
dxgi: Check NULL adapter parameter in dxgi_factory_EnumAdapterByLuid().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-20 16:14:05 +01:00
Zhiyi Zhang
9f676b71e9
dxgi/tests: Add multiple adapters tests.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-07 21:28:24 +01:00
Andrew Eikum
a7984a3a9a
dxgi/tests: Test the fullscreen state after the swapchain window is destroyed.
...
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-24 17:21:29 +01:00
Andrey Gusev
4fbdfc604b
dxgi/tests: Fix a typo in ok() message.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-02 22:02:56 +01:00
Conor McCarthy
a7cd70a8c8
dxgi/tests: Add tests for IDXGISwapChain3::ResizeBuffers1().
...
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:40 +01:00
Conor McCarthy
58b482c9f4
dxgi: Implement IDXGISwapChain3::ResizeBuffers1().
...
Used by Hitman 2.
Multiple nodes and command queues are not supported.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:01:40 +01:00
Zhiyi Zhang
c173a650e1
dxgi: Implement dxgi_output_TakeOwnership().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-31 00:33:46 +01:00
Zhiyi Zhang
4f3d66e2c6
dxgi: Implement dxgi_output_ReleaseOwnership().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-31 00:33:46 +01:00
Andrew Eikum
eb2028fa90
dxgi: Sort reported output modes.
...
Sekiro: Shadows Die Twice depends on this for its mode switching.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 19:19:33 +01:00
Zhiyi Zhang
644d00d540
winex11.drv: Implement X11DRV_D3DKMTCheckVidPnExclusiveOwnership.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-22 23:04:27 +02:00
Conor McCarthy
fabd07d520
dxgi: Add support for DXGI_SCALING_NONE.
...
In fullscreen mode, Shadow of the Tomb Raider uses an unscaled swapchain
that is oversized by 1x1 pixel. The pixel-wide lines on the right and
bottom should be clipped to fit the display. This eliminates the two
lines of uninitialized data.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-21 19:55:36 +02:00
Conor McCarthy
66548659d0
dxgi: Do not warn about ignoring a null refresh rate.
...
Both values will be zero if fullscreen_desc was NULL.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-21 19:55:30 +02:00
Conor McCarthy
890428abdc
dxgi/tests: Mark as todo the containing output test if a secondary monitor will cause failure.
...
Prevents test failure and crash until multi-monitor support is improved.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-21 19:55:25 +02:00
Andrey Gusev
eb0a01f750
dxgi: Add IDXGIDevice3 stub.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-09 16:25:55 +02:00
Henri Verbeet
d9835f4d0c
dxgi/tests: Introduce create_window().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 14:30:59 +02:00
Michael Stefaniuc
ce9909863b
dxgi/tests: Remove useless casts to self.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-12 09:32:06 +02:00
Conor McCarthy
5a593f43f3
dxgi/tests: Run test_set_fullscreen() on d3d12 as well.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 08:04:53 +02:00
Conor McCarthy
e9c5dda48a
dxgi/tests: Run test_resize_target() on d3d12 as well.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 08:04:51 +02:00
Conor McCarthy
9b493d42c4
dxgi: Implement d3d12_swapchain_SetFullscreenState().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 08:04:48 +02:00
Conor McCarthy
712d3ca1e4
dxgi: Implement d3d12_swapchain_GetFullscreenState().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 08:04:45 +02:00
Conor McCarthy
6d64bfc28b
dxgi: Implement d3d12_swapchain_ResizeTarget().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 08:04:42 +02:00
Henri Verbeet
71e8a32479
wined3d: Replace wined3d_swapchain_resize_target() with wined3d_swapchain_state_resize_target().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-01 08:04:39 +02:00
Józef Kucia
601b8d9fae
dxgi: Obey image count limits for Vulkan swapchains.
...
Mesa drivers require at least 3 images (see Mesa commit
4689e98fe884d9412b72fd6293b6d6a69e3ef68e).
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-31 09:38:18 +02:00
Zhiyi Zhang
e66f8e8c2d
dxgi: Fix possible null output from d3d11_swapchain_GetFullscreenState.
...
When swapchain is created in windowed mode, and then enter fullscreen
via Alt+Enter. Calling d3d11_swapchain_GetFullscreenState will return
a null output because swapchain->target wasn't initialized.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-31 08:25:18 +02:00
Zhiyi Zhang
facd7cce6d
dxgi/tests: Test output after using Alt+Enter to switch fullscreen.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-31 08:25:12 +02:00
Zhiyi Zhang
da6afd5cfd
dxgi/tests: Add IDXGIOutput ownership tests.
...
Mostly to show that IDXGIOutput_TakeOwnership() and
IDXGIOutput_ReleaseOwnership() are based on VidPN ownership.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-25 08:28:05 +02:00
Zhiyi Zhang
8113aca762
dxgi: Return DXGI_STATUS_OCCLUDED for minimised windows in d3d11_swapchain_present().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-25 08:28:02 +02:00
Zhiyi Zhang
9b668792a9
dxgi/tests: Add more IDXGISwapChain_Present() tests.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-25 08:28:00 +02:00
Józef Kucia
dd202c1175
dxgi: Forbid creating D3D12 swapchains on desktop window.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-24 13:01:58 +02:00
Andrew Eikum
628d60a159
wined3d: Validate that we got a valid window in wined3d_device_setup_fullscreen_window().
...
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-20 08:48:36 +02:00
Andrew Eikum
45166d3313
dxgi: Return DXGI_ERROR_NOT_CURRENTLY_AVAILABLE if setting the fullscreen state failed.
...
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-20 08:48:29 +02:00
Andrew Eikum
67110d37e9
dxgi/tests: Add tests for setting the fullscreen state of swapchains with destroyed windows.
...
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-20 08:48:26 +02:00
Zhiyi Zhang
a600760fa1
dxgi: Implement Alt+Enter handling.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-19 20:41:26 +02:00
Henri Verbeet
b94a6b1efd
wined3d: Do not acquire/release the focus window in wined3d_swapchain_set_fullscreen().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-19 20:41:26 +02:00
Zhiyi Zhang
2b2ea820a4
dxgi: Retrieve swapchains' fullscreen state from wined3d.
...
Once Alt+Enter handling is implemented, the fullscreen state may change
without dxgi necessarily being aware of it.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-19 20:41:26 +02:00
Zhiyi Zhang
6c3c5b23c7
dxgi: Implement dxgi_factory_GetWindowAssociation().
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-19 20:41:26 +02:00
Zhiyi Zhang
434b6fe019
dxgi/tests: Add window association tests.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-19 20:41:26 +02:00
Józef Kucia
937891cc65
dxgi: Improve tracing in dxgi_adapter_QueryVideoMemoryInfo().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-10 19:51:00 +02:00
Józef Kucia
086f263a9e
dxgi: Acquire Vulkan image just before present when we have user images.
...
The current DXGI back buffer index is independent of the current Vulkan
image index when we have user images. We can use this fact to delay
calling vkAcquireNextImageKHR().
This increases GPU utilization from 84% to 100% in the main menu of
Metro Exouds on Nvidia.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-06 13:19:33 -05:00
Józef Kucia
711e68c9b8
dxgi: Add some asserts for Vulkan swapchains.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-06 13:19:33 -05:00
Józef Kucia
3084ea8269
dxgi: Make Vulkan swapchain image count independent of DXGI buffer count.
...
Vulkan can create more swapchain images than requested.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-06 13:19:33 -05:00
Józef Kucia
2002585000
dxgi: Factor out d3d12_swapchain_record_swapchain_blit().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-06 13:19:33 -05:00
Józef Kucia
c03184001e
dxgi: Avoid magic constants.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-30 20:08:33 +02:00
Andrey Gusev
29cd7dd072
dxgi: Add DECLSPEC_HOTPATCH to d3d11_swapchain_Present().
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46953
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46971
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-23 23:50:45 +02:00
Henri Verbeet
7d351e1168
dxgi: Slightly simplify d3d11_swapchain_init().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-12 15:33:46 +02:00
Henri Verbeet
b15685355c
wined3d: Explicitly create the implicit swapchain.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-12 15:33:44 +02:00
Francois Gouget
1684b01118
Disable multithreaded DirectX tests if WINETEST_NO_MT_D3D is set.
...
The nouveau graphics driver's support for multithreaded OpenGL is
buggy at least up to (18.2.8) so that any Wine test that performs
multithreaded OpenGL accesses freezes, crashes the Mesa stack and
eventually freezes the whole computer. Typically the first such test
is d2d1:d2d1.
The relevant tests have a --single option but WineTest neither knows
which tests accept this option, nor whether it is needed for the
current host.
The WINETEST_NO_MT_D3D environnement variable can be set on hosts
that need it (such as the cw2-gtx560 box) and is automatically
inherited by the relevant tests thus working around this issue.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-03 20:35:44 +02:00
Józef Kucia
6b05ef1f01
dxgi: Add support for building with Win32 Vulkan.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 19:32:17 +01:00
Józef Kucia
0f86a47ece
dxgi: Do not forward d3d12_swapchain_Present() to d3d12_swapchain_Present1().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-14 23:52:59 +01:00
Józef Kucia
e88084f650
dxgi: Do not forward d3d11_swapchain_Present() to d3d11_swapchain_Present1().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-13 23:40:39 +01:00
Józef Kucia
cbb9f8539a
dxgi/tests: Use void pointer for get_refcount() parameter.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-13 23:40:39 +01:00
Józef Kucia
e3ad02bd3e
dxgi: Factor out d3d11_swapchain_get_hwnd().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-12 20:31:41 +01:00
Józef Kucia
642ef33df0
dxgi: Introduce IWineDXGIAdapter::get_adapter_info().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-12 20:31:36 +01:00
Józef Kucia
f0f16e255e
dxgi: Implement d3d12_swapchain_GetContainingOutput().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-11 19:15:05 +01:00
Józef Kucia
5a676c2ff5
dxgi: Improve d3d11_swapchain_GetContainingOutput() implementation.
...
Use MonitorFromWindow() to find the containing IDXGIOutput. This matches
our DXGI tests.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-11 19:15:03 +01:00
Józef Kucia
b1a4af2258
dxgi: Trace mode on separate line for FindClosestMatchingMode().
...
For more readable logs.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-07 17:58:57 +01:00
Józef Kucia
b817be926d
dxgi: Implement dxgi_output_GetDisplayModeList1().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-07 17:58:54 +01:00
Józef Kucia
07b0034b55
dxgi/tests: Add tests for creating swapchain with DXGI_FORMAT_UNKNOWN.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:31:46 +01:00
Józef Kucia
9d023a5004
dxgi: Rename d3d12_swapchain_have_user_images() to d3d12_swapchain_has_user_images().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:31:43 +01:00
Józef Kucia
42b22b0a77
dxgi: Reject DXGI_FORMAT_UNKNOWN for swapchains.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:31:41 +01:00
Józef Kucia
11dfed9f9e
dxgi: Implement dxgi_output_FindClosestMatchingMode1().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:31:38 +01:00
Józef Kucia
d601983971
dxgi/tests: Make sure that device is idle before destroying swapchains.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:31:35 +01:00
Józef Kucia
670062ae33
dxgi/tests: Fix potential crashes in test_get_containing_output().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:31:33 +01:00
Józef Kucia
715a52a61c
dxgi: Avoid recreating swapchain when we don't have user images.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:31:27 +01:00
Józef Kucia
bfdc07e7d0
dxgi: Handle VK_ERROR_OUT_OF_DATE_KHR returned from vkAcquireNextImageKHR().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-04 12:25:30 +01:00
Józef Kucia
09e7f1cba1
dxgi: Factor out d3d12_swapchain_recreate_vulkan_swapchain().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-04 12:25:28 +01:00
Józef Kucia
17d5774152
dxgi: Introduce d3d12_swapchain_have_user_images().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-04 12:25:25 +01:00
Józef Kucia
0510bca696
dxgi: Recreate Vulkan swapchain only when current buffer index is 0.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Józef Kucia
b78f02922d
dxgi: Implement 0 sync interval for D3D12 swapchains.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Józef Kucia
00e6b50da6
dxgi: Use VK_FILTER_LINEAR for swapchain blits if dimensions don't match.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Józef Kucia
6e052efbff
dxgi: Set Vulkan swapchain size according to VkSurfaceCapabilitiesKHR.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Józef Kucia
13bcb4d946
dxgi: Re-create swapchain on VK_ERROR_OUT_OF_DATE_KHR.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Józef Kucia
0da481856b
dxgi: Always use user images instead of using Vulkan swapchain directly.
...
Some Vulkan drivers require that swapchain dimensions and window dimensions match exactly.
Additionally, we want to have ability to change the presentation mode, and the only way to change
the presentation mode in Vulkan is to recreate the swapchain.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Józef Kucia
d7fd50b0af
dxgi/tests: Run test_swapchain_present() on D3D12.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Henri Verbeet
8ba075a059
dxgi: Introduce the IWineDXGISwapChainFactory interface.
...
The basic idea is that a project like vkd3d could provide its own
implementation of the IWineDXGISwapChainFactory interface, and so wouldn't
need specific handling in dxgi_factory_CreateSwapChainForHwnd().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 16:13:41 +01:00
Józef Kucia
6dddb88ebe
wined3d: Lock wined3d mutex in wined3d_get_adapter_identifier().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-03 22:27:05 +01:00