Commit Graph

2258 Commits

Author SHA1 Message Date
Józef Kucia
dadf2eda08 vkd3d-shader: Declare OriginUpperLeft execution mode for fragment shaders.
Required by the Vulkan spec:

  "fragment entry points must declare OriginUpperLeft."

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-01-11 19:31:31 +01:00
Józef Kucia
e84472d026 Update copyright info for 2019.
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-01-10 10:03:58 -06:00
Józef Kucia
9a083f9c31 tests: Add multithreaded private data test.
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-01-10 10:03:55 -06:00
Józef Kucia
2629d9703f vkd3d: Protect private data with mutex.
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-01-10 10:03:53 -06:00
Józef Kucia
5a1408c78d vkd3d: Handle NULL pointers in vkd3d_private_store_set_private_data().
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-01-10 10:03:47 -06:00
Józef Kucia
e13fb138cd vkd3d: Implement private data for query heaps.
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-01-04 17:05:43 +01:00
Józef Kucia
c9bd123bd0 vkd3d: Implement private data for descriptor heaps.
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-01-04 17:05:41 +01:00
Józef Kucia
781d856ce3 vkd3d: Implement private data for resources.
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-01-04 17:05:39 +01:00
Józef Kucia
e9520af19f vkd3d: Implement private data for heaps.
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-01-04 17:05:35 +01:00
Józef Kucia
b8fce1ac36 vkd3d: Implement private data for pipeline states.
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-01-04 17:05:33 +01:00
Józef Kucia
751d79a68f vkd3d: Implement private data for root signatures.
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-01-04 17:05:28 +01:00
Józef Kucia
223e89a6e5 vkd3d: Implement private data for command signatures.
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-01-04 17:05:23 +01:00
Józef Kucia
1b07aae974 tests: Modify ps_movc shader to avoid crashes on Windows.
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-01-03 17:19:06 +01:00
Józef Kucia
567000cab3 vkd3d: Implement private data for ID3D12Device.
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-01-03 17:19:04 +01:00
Józef Kucia
ec13f36681 vkd3d: Implement private data for command lists.
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-01-03 17:19:02 +01:00
Józef Kucia
f92abd7147 vkd3d: Implement private data for command allocators.
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-01-03 17:19:00 +01:00
Józef Kucia
0ddd6dbbb6 vkd3d: Implement private data for fences.
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-01-03 17:18:58 +01:00
Józef Kucia
d18360a8b7 vkd3d: Implement private data for command queues.
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-01-03 17:18:56 +01:00
Józef Kucia
49e55dd639 vkd3d-shader: Implement DXBC checksum for root signatures.
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-20 19:41:44 +01:00
Józef Kucia
3795add878 vkd3d-shader: Import MD5 implementation from Wine.
With style changes.

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-20 19:41:41 +01:00
Józef Kucia
128dadaac1 tests: Skip stencil shader resource view tests on Windows AMD drivers.
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-17 19:17:18 +01:00
Józef Kucia
6cd06fa874 tests: Detect device vendor only on Windows.
For running cross-compiled tests in Wine.

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-17 19:17:17 +01:00
Józef Kucia
ce39464192 tests: Use vkd3d_test_set_context() in more 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>
2018-12-17 19:17:16 +01:00
Józef Kucia
5bb045c8f9 vkd3d: Validate RTV format for inactive render targets in pipeline state 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-12-17 19:17:14 +01:00
Józef Kucia
46034d4069 tests: Add test for dual source blending.
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-17 19:17:13 +01:00
Józef Kucia
c93d9bc714 vkd3d: Implement dual source blending.
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-17 19:17:11 +01:00
Józef Kucia
5b0ed414a1 vkd3d-shader: Add support for dual source blending.
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-17 19:17:10 +01:00
Józef Kucia
4e66897a1e vkd3d-shader: Avoid BYTE.
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-12 17:28:16 +01:00
Józef Kucia
a7aaa09eb3 vkd3d-shader: Avoid BOOL.
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-12 17:28:16 +01:00
Józef Kucia
6bcee19960 vkd3d: Return E_FAIL for invalid shader bytecode.
On Windows invalid shader bytecode leads to a crash, E_FAIL or
E_OUTOFMEMORY error.

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-12 17:28:16 +01:00
Józef Kucia
e9b33183cf tests: Add test for invalid shader bytecode.
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-12 17:28:16 +01:00
Józef Kucia
56f79913f6 tests: Skip "ps_movc" on Windows AMD drivers.
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-12 17:08:54 +01:00
Józef Kucia
0be448b4fd tests: Fix --warp command line option.
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-12 17:08:52 +01:00
Józef Kucia
f359108658 tests: Detect when WARP is used.
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-12 17:08:50 +01:00
Józef Kucia
c090602e0a tests: Add names for shader instruction 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>
2018-12-12 17:08:49 +01:00
Józef Kucia
d0f6d8131a tests: Introduce vkd3d_test_set_context().
Useful for table-based 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>
2018-12-12 17:08:47 +01:00
Józef Kucia
b868b5a258 vkd3d: Avoid out-of-bounds array access in d3d12_device_CopyDescriptors().
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-12 17:08:42 +01:00
Józef Kucia
e62e1dadb5 tests: Introduce enable_d3d12_debug_layer() 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-12-04 18:50:31 +01:00
Józef Kucia
96f9b1b771 tests: Introduce parse_args() 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-12-04 18:50:30 +01:00
Józef Kucia
03eba4b0ad tests: Move invalid usage tests to separate unit.
Ideally, tests should not produce Vulkan validation errors. Move tests
which explicitly test invalid usage of D3D12 and are expected to produce
validation errors to a separate file.

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-04 18:50:28 +01:00
Józef Kucia
55587f30b7 tests: Move some helpers to d3d12_crosstest.h.
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-04 18:50:27 +01:00
Józef Kucia
8477606e1c tests: Move more helpers to d3d12_test_utils.h.
We should move the implementation to a C file.

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-04 18:50:25 +01:00
Józef Kucia
fa997de83d tests: Introduce common header for d3d12 crosstests.
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-04 18:50:24 +01:00
Józef Kucia
599ff571f9 tests: Add test for indirect indexed draw commands.
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-04 18:50:22 +01:00
Józef Kucia
9eaa641376 vkd3d: Validate that command signature contains exactly one dispatch/draw command.
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-04 18:50:20 +01:00
Józef Kucia
c15ab6a51c vkd3d: Add asserts for indirect draw arguments.
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-04 18:50:19 +01:00
Józef Kucia
3e8d0e7a6a vkd3d: Get rid of asserts from d3d12_device_CopyDescriptors().
Do not require that source range sizes match destination range sizes.
It works on Windows even though D3D12 validation layers throw errors
about size mismatches.

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-04 18:50:16 +01:00
Józef Kucia
6851bc6667 vkd3d: Implement D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED.
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:22:49 +01:00
Józef Kucia
a1ad45be69 vkd3d: Add FIXME() for unsupported strip cut values.
In Vulkan, the strip cut value is derived from the current index buffer
format. We could recompile the pipeline to handle more cases.

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:22:48 +01:00
Józef Kucia
c74074d93f tests: Add test for primitive restart.
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:22:47 +01:00