Commit Graph

1215 Commits

Author SHA1 Message Date
Francisco Casas
ab463f74bd tests: Test array indexing with multiple swizzles. 2023-10-31 21:59:11 +01:00
Nikolay Sivov
bc2a4ee66a vkd3d-shader/tpf: Write out 'switch' statements.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-31 21:59:05 +01:00
Nikolay Sivov
68c14079a6 vkd3d-shader/hlsl: Add a pass to normalize switch cases blocks.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-31 21:59:04 +01:00
Nikolay Sivov
72623031a2 vkd3d-shader/hlsl: Validate break/continue context.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-31 21:59:01 +01:00
Nikolay Sivov
ec8dfa467f vkd3d-shader/hlsl: Add initial support for parsing 'switch' statements.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-31 21:58:57 +01:00
Nikolay Sivov
ebb5aacabf tests: Add some tests for the 'switch' statements.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-31 21:58:57 +01:00
Giovanni Mascellani
f462d237c1 ci: Run shader tests on Windows. 2023-10-31 21:58:53 +01:00
Giovanni Mascellani
dbc5e7d07c ci: Run cross tests on Windows.
A driver program is introduced to coordinate test running on Windows,
similarly to what "make test" does on Linux and macOS.
2023-10-31 21:58:51 +01:00
Henri Verbeet
f75bdd6e21 vkd3d-utils: Implement D3DStripShader(). 2023-10-19 23:07:50 +02:00
Henri Verbeet
96556a8834 vkd3d-shader/hlsl: Add support for RWTexture2DArray. 2023-10-19 23:07:31 +02:00
Henri Verbeet
6fe781ff50 tests: Add basic RWTexture2DArray tests. 2023-10-19 23:07:31 +02:00
Henri Verbeet
2c71c18879 vkd3d-shader/hlsl: Add support for RWTexture1DArray. 2023-10-19 23:07:30 +02:00
Henri Verbeet
ae9d29a377 tests: Add basic RWTexture1DArray tests. 2023-10-19 23:07:29 +02:00
Henri Verbeet
b63c853688 vkd3d-utils: Implement D3DGetBlobPart().
This was largely adapted from Wine's d3dcompiler_43, with some style
adjustments.
2023-10-18 20:58:22 +02:00
Giovanni Mascellani
0dc40d7c1e tests: Skip processing resources according to [require] directives. 2023-10-18 20:58:19 +02:00
Giovanni Mascellani
d69c04471e tests: Do not test matrix majority on SM1-3.
I'm not sure of what's happening here, but it seems that this change
fixes a crash when running on Windows in the CI. Since most of the
test excludes SM1-3 anyway, this shouldn't be a big loss.
2023-10-18 20:58:18 +02:00
Giovanni Mascellani
ca51c359ec tests: Fix the usage of require directives.
They are reset each time "[require]" is encountered.
2023-10-18 20:58:17 +02:00
Giovanni Mascellani
ead98ef329 tests: Remove an irrelevant input from a test.
The irrelevant input caused the test to fail on D3D12 for reasons
unrelated to the test's goal.
2023-10-18 20:58:16 +02:00
Giovanni Mascellani
671548494f tests: Do not test integral types for SM1-3. 2023-10-18 20:58:16 +02:00
Giovanni Mascellani
90f9407b80 tests: Do not use global half values.
They are not allowed by the native compiler, except in compatibility
mode.
2023-10-18 20:58:14 +02:00
Henri Verbeet
803e5183cc tests: Specify argument types for dxcompiler_create(). 2023-10-17 22:18:36 +02:00
Henri Verbeet
47d4097efa vkd3d-utils: Check for a NULL 'blob' pointer in D3DCreateBlob(). 2023-10-16 22:36:58 +02:00
Giovanni Mascellani
eaf35c394d tests: Skip test_atomic_instructions() on WARP.
Pipeline creation fails with E_INVALIDARG, atomics are likely not
supported on WARP.
2023-10-16 22:36:52 +02:00
Giovanni Mascellani
0d4a5f1860 tests: Skip test_unbounded_resource_arrays() on WARP.
Most reads on WARP are off by a few units. I haven't investigated
the reason.
2023-10-16 22:36:50 +02:00
Giovanni Mascellani
fe88dafdbd tests: Skip test_execute_indirect() on WARP.
The device is eventually lost, indirect commands are likely not
supported on WARP.
2023-10-16 22:36:49 +02:00
Giovanni Mascellani
ee3c4b6555 tests: Skip test_get_copyable_footprints() on WARP.
There are 12025 failures with WARP. I haven't investigated them.
2023-10-16 22:36:47 +02:00
Giovanni Mascellani
d72e30f1d1 tests: Skip test_null_vbv() on WARP.
On WARP 0xffffffff is read instead of zero.
2023-10-16 22:36:45 +02:00
Giovanni Mascellani
14c9be697f tests: Acknowledge some double operations being broken on WARP. 2023-10-16 22:36:45 +02:00
Giovanni Mascellani
3f87cf9d7f tests: Acknowledge WARP giving a GPU handle to a non-shader-visible descriptor heap.
WARP has no GPU, so it probably treats GPU handles just like CPU handles.
2023-10-16 22:36:43 +02:00
Giovanni Mascellani
862dcf27a6 tests: Acknowledge WARP accepting some unusual CreateCommittedResource() configuration.
A software implementation can conceivably satisfy some requests that
cannot work on real hardware.
2023-10-16 22:36:41 +02:00
Conor McCarthy
e0d0a04b79 vkd3d-shader/dxil: Handle multi-row signature elements. 2023-10-16 22:36:38 +02:00
Henri Verbeet
e53178f395 tests: Use the same viewport origin and front-face orientation in the Vulkan and D3D runners.
I.e., top-left origin, and clockwise front-facing. These end up cancelling
each other out when drawing full-screen quads, but that's not necessarily true
for other geometry.
2023-10-16 22:36:22 +02:00
Giovanni Mascellani
c1de65a99b tests: Fail if dxcompiler is not available at runtime. 2023-10-16 22:36:17 +02:00
Conor McCarthy
57280673e5 tests/shader-runner: Test shaders with dxcompiler.
The location of dxcompiler should be set during configuration with
'DXCOMPILER_LIBS=-L/path/to/dxcompiler', and then at runtime with
LD_LIBRARY_PATH, WINEPATH or PATH as applicable.

A new 'fail(sm<6)' decoration is needed on many shader declarations
because dxcompiler succeeds on many shaders which fail with fxc. The
opposite case is less common and is flagged with 'fail(sm>=6)'. A few
tests cause dxcompiler to crash or hang, so these are avoided using
[require], which now skips tests until reset instead of exiting. Also,
'todo(sm<6)' and 'todo(sm>=6)' are used to separate checking of results.
2023-10-11 22:21:14 +02:00
Conor McCarthy
d211160b89 tests/shader-runner: Replace immediate shader type strings with an enum. 2023-10-11 22:21:14 +02:00
Conor McCarthy
0ef0735999 tests/shader-runner: Do not exit if a 'require' directive is not met.
Tests are skipped until the next 'require' directive, which restores
the defaults before the new requirements are read.
2023-10-11 22:21:14 +02:00
Conor McCarthy
192f4dcb2b tests/shader-runner: Handle individual keywords in shader directives.
Matching all possible combinations of keywords becomes too complex
if more keywords are added.
2023-10-11 22:21:14 +02:00
Nikolay Sivov
9c6c7cb78f vkd3d: Add partial implementation for CreateCommittedResource1(). 2023-10-10 22:11:46 +02:00
Nikolay Sivov
8479ceedfc vkd3d-shader/hlsl: Propagate structure fields modifiers when copying shader inputs.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:29 +02:00
Nikolay Sivov
1930b51d97 vkd3d-shader/hlsl: Allow interpolation modifiers on structure fields.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:27 +02:00
Nikolay Sivov
de860c3cbf vkd3d-shader/hlsl: Parse 'centroid' and 'noperspective' modifiers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:24 +02:00
Nikolay Sivov
4b8a4809d1 tests: Add a test for interpolation modifiers specified on structure fields.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:24 +02:00
Nikolay Sivov
c5414fa92f vkd3d-shader/tpf: Write 'continue' instruction.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:17 +02:00
Nikolay Sivov
0e5749e78e vkd3d-shader/hlsl: Allow 'break' instructions in loops.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:12 +02:00
Nikolay Sivov
89f493b900 tests: Add some tests for 'break'/'continue' in loops.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:12 +02:00
Nikolay Sivov
6ba75fd92f vkd3d: Add partial implementation for CreateHeap1().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-09 21:58:07 +02:00
Nikolay Sivov
7c378cc6f9 vkd3d-shader/hlsl: Remove conditional branching when condition is a compile time constant.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-05 16:16:09 +02:00
Nikolay Sivov
8ebccad3c9 vkd3d-shader/hlsl: Add constant folding for rshift.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-05 16:15:54 +02:00
Nikolay Sivov
6e74819eb7 vkd3d-shader/hlsl: Add constant folding for lshift.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-05 16:15:52 +02:00
Francisco Casas
e64e08b2b7 tests: Test register reservations on structs for SM5. 2023-10-05 16:15:30 +02:00