Commit Graph

380 Commits

Author SHA1 Message Date
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
Józef Kucia 9042fbe1e4 wined3d: Lock wined3d mutex in wined3d_swapchain_present().
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
Józef Kucia 4eb4a7bc31 dxgi/tests: Add basic test for gamma control.
Based on a patch by Michael Müller.

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-11-30 19:36:51 +01:00
Józef Kucia 369ef0f56d dxgi: Return S_OK from dxgi_output_SetGammaControl() stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43584
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-11-30 19:36:51 +01:00
Michael Müller ad76b1fb36 dxgi: Implement dxgi_output_GetGammaControlCapabilities().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43584
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-11-30 19:36:51 +01:00
Józef Kucia 56d2db81b3 wined3d: Lock wined3d mutex in wined3d_swapchain_decref().
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-11-29 17:48:34 +01:00
Józef Kucia aaba7fdd00 dxgi: Avoid locking wined3d mutex around wined3d_swapchain_incref().
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-11-29 17:48:34 +01:00
Józef Kucia 03c37f22eb dxgi/tests: Add separate window thread for test_resize_target_wndproc().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45431
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-11-29 17:48:34 +01:00
Józef Kucia 0896decb18 wined3d: Lock wined3d mutex in wined3d_swapchain_resize_target().
Fixes a deadlock. It can also be seen as a small step towards more
fine-grained locking in wined3d.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45431
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-11-29 17:48:34 +01:00
Józef Kucia 5fb9e144c6 dxgi/tests: Add test for ResizeTarget() with window procedure.
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-11-29 17:48:34 +01:00
Józef Kucia 650abc567a dxgi/tests: Add missing ok() call.
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-11-23 20:17:44 +01:00
Józef Kucia bd4b7f7fb6 dxgi/tests: Add basic test for 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>
2018-11-21 17:06:09 +01:00
Józef Kucia a96f6f8bf5 dxgi: Report non-zero shared system memory.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40803
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-11-21 17:06:07 +01:00
Józef Kucia d94d2c0ead dxgi: Partially implement dxgi_adapter_QueryVideoMemoryInfo().
Based on a patch by Matteo Bruni.

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-11-21 17:05:59 +01:00
Henri Verbeet 03c1422a71 wined3d: Get rid of WINED3DUSAGE_TEXTURE.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-06 11:14:36 +01:00
Henri Verbeet 3adf4b8415 wined3d: Get rid of WINED3DUSAGE_RENDERTARGET.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 19:12:12 +01:00
Henri Verbeet 543605ca9d wined3d: Pass correct bind flags to swapchain creation functions.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-31 16:17:36 +01:00
Henri Verbeet 7cba915710 wined3d: Pass correct bind flags to texture creation functions.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-31 16:17:36 +01:00
Nikolay Sivov 1e8d17d0a4 dxgi: Add partial implementation for dxgi_adapter_GetDesc2() and dxgi_adapter_GetDesc3().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-24 16:58:08 +02:00
Nikolay Sivov 7e7d03ed59 dxgi: Add IDXGIAdapter4 stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-24 16:58:08 +02:00
Nikolay Sivov 2ea796ad71 dxgi: Support IID_IDXGIDevice in dxgi_adapter_CheckInterfaceSupport().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-22 11:12:28 +02:00
Marcus Meissner 442fd828ff dxgi: Fixed typo in width/height (Coverity).
CID 1439782

Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-01 19:12:30 -07:00
Józef Kucia 04887860ca dxgi: Merge dxgi_check_feature_level_support() into dxgi_adapter_CheckInterfaceSupport().
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-09-25 21:45:04 +02:00
Józef Kucia 47cf3204b4 dxgi: Simplify dxgi_adapter_GetDesc().
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-09-25 21:45:04 +02:00
Józef Kucia 23ad7f6a8b dxgi: Get rid of set_feature_level() from dxgi_device_layer.
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-09-24 22:41:30 +02:00
Józef Kucia 7b2ff90404 wined3d: Pass feature levels to wined3d_device_create().
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-09-24 22:41:30 +02:00
Józef Kucia 13ec617654 wined3d: Add remaining feature levels.
We still don't have proper and exhaustive checks for feature levels
capabilities.

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-09-24 22:41:30 +02:00
Józef Kucia 298c6a26a8 dxgi: Introduce wined3d_feature_level_from_d3d() helper function.
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-09-24 22:41:30 +02:00
Józef Kucia 54e3a99634 dxgi/tests: Avoid "skipping tests" in skip() messages.
skip() prints "Tests skipped:".

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-09-19 23:17:12 +02:00
Józef Kucia f71dd6ce94 dxgi/tests: Add test for swapchain window styles.
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-09-19 23:17:10 +02:00
Józef Kucia 1d1f340c90 dxgi/tests: Add test for swapchain window messages.
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-09-19 23:17:08 +02:00
Józef Kucia d89ca410ed dxgi/tests: Add test for swapchain formats.
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-09-18 20:59:38 +02:00
Józef Kucia 50ca01a387 dxgi: Add support for DXGI_FORMAT_R16G16B16A16_FLOAT 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>
2018-09-18 20:59:38 +02:00
Józef Kucia db30c0791f dxgi: Validate formats for flip presentation model.
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-09-18 20:59:38 +02:00
Józef Kucia a53681829b dxgi: Validate swapchain desc in d3d12_swapchain_ResizeBuffers().
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-09-18 20:59:38 +02:00
Józef Kucia e36af9284f dxgi: Factor out dxgi_validate_swapchain_desc().
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-09-18 20:59:38 +02:00
Józef Kucia b3d819a1d7 dxgi: Fix dxgi_output_QueryInterface().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44655
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-09-07 18:18:40 +02:00
Nikolay Sivov 58f3dc4bec dxgi: Implement Map()/Unmap().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-03 19:43:52 +02:00
Józef Kucia 25c3d9938a dxgi: Return actual swap effect for D3D11 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>
2018-08-30 20:27:05 +02:00
Józef Kucia 8c6e8d6c82 dxgi: Add support for DXGI_FORMAT_R10G10B10A2_UNORM 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>
2018-08-30 20:27:01 +02:00
Józef Kucia ecac3a217d dxgi: Rename remaining "This" variables.
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-08-29 22:01:38 +02:00
Józef Kucia f28a82bf57 dxgi/tests: Run test_swapchain_resize() 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>
2018-08-29 22:01:38 +02:00
Józef Kucia d10a9faa46 dxgi: Implement d3d12_swapchain_ResizeBuffers().
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-08-29 22:01:38 +02:00
Józef Kucia 9902af08ce dxgi: Factor out d3d12_swapchain_create_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>
2018-08-29 22:01:38 +02:00
Józef Kucia 7343aec0cd dxgi: Factor out d3d12_swapchain_destroy_buffers().
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-08-29 22:01:38 +02:00
Józef Kucia 278ddcbfba dxgi: Move D3D12 helper functions closer to the top of the file.
We need to re-create a Vulkan swapchain in ResizeBuffers().

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-08-29 22:01:38 +02:00
Józef Kucia 79bc939b40 dxgi: Choose exact formats for D3D12 swapchain fallback formats.
Mainly to avoid gamma correction issues.

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-08-27 17:34:47 +02:00
Henri Verbeet 8eb31f2e04 dxgi/tests: Run the tests in parallel.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-21 23:21:52 +02:00
Józef Kucia df84cb3842 dxgi: Prefer vkGet*ProcAddr() for loading Vulkan functions.
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-08-16 13:06:09 +02:00