Nikolay Sivov
9a6e4a0c58
vkd3d-shader/hlsl: Check for duplicate case statements.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-31 21:58:59 +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
Conor McCarthy
b7b128595e
vkd3d-shader/dxil: Read CBV descriptors.
2023-10-19 23:07:45 +02:00
Conor McCarthy
1e5f91b371
vkd3d-shader: Emit IR CBV declaration sizes in bytes.
...
DXIL declares CBV sizes in bytes and they are not aligned to 16 bytes.
2023-10-19 23:07:43 +02:00
Conor McCarthy
f7525bf0c6
vkd3d-shader/dxil: Validate the descriptor list metadata nodes.
2023-10-19 23:07:42 +02:00
Conor McCarthy
9b64d04ed3
vkd3d-shader/spirv: Align constant buffer sizes to 16 bytes.
...
DXIL constant buffer sizes are not aligned to 16 bytes.
2023-10-19 23:07:40 +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
Nikolay Sivov
c837f007e2
vkd3d-compiler: Dynamically allocate options array.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-19 23:03:25 +02:00
Nikolay Sivov
e242b46922
vkd3d-shader/tpf: Convert some of the semantic names to system values names when in compatibility mode.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-10-19 23:03:23 +02:00
Conor McCarthy
a4ed06bc5b
vkd3d-shader/d3d-asm: Recognise the 'rasteriser ordered view' UAV flag.
2023-10-18 20:58:27 +02:00
Henri Verbeet
9ce98f9be5
vkd3d-utils: Implement D3DGetOutputSignatureBlob().
2023-10-18 20:58:24 +02:00
Henri Verbeet
9d9f762ede
vkd3d-utils: Implement D3DGetInputSignatureBlob().
2023-10-18 20:58:24 +02:00
Henri Verbeet
be8efb9c9c
vkd3d-utils: Implement D3DGetInputAndOutputSignatureBlob().
2023-10-18 20:58:24 +02:00
Henri Verbeet
247eaa6b7d
vkd3d-utils: Implement D3DGetDebugInfo().
2023-10-18 20:58:24 +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
Giovanni Mascellani
54239da200
ci: Properly pass -W flags for cross tests building.
2023-10-18 20:58:12 +02:00
Henri Verbeet
4e8ba62481
vkd3d-shader/spirv: Initialise "symbol.descriptor_array" in spirv_compiler_emit_combined_sampler_declarations().
...
Besides simply avoiding carrying around some uninitialised data, we
check "symbol->descriptor_array" in spirv_compiler_prepare_image(), both
for separate resources and for combined resource/sampler symbols.
2023-10-17 22:18:44 +02:00
Henri Verbeet
803e5183cc
tests: Specify argument types for dxcompiler_create().
2023-10-17 22:18:36 +02:00
Conor McCarthy
85c165ff39
vkd3d-shader/dxil: Read DXIL compute shader thread group dimensions.
2023-10-17 22:18:26 +02:00
Conor McCarthy
4b7ca0c294
vkd3d-shader/dxil: Read DXIL global flags.
2023-10-17 22:18:25 +02:00
Conor McCarthy
06f8a88466
vkd3d-shader: Define more global flags.
2023-10-17 22:18:23 +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
Conor McCarthy
7113064a19
vkd3d-shader/dxil: Handle signature element additional tag/value pairs.
2023-10-16 22:36:36 +02:00
Conor McCarthy
8648ca0e77
vkd3d-shader/dxil: Read the DXIL input and output signatures.
...
These can differ from the DXBC signatures by having multiple rows, and
load/store instructions reference them by id instead of register index.
2023-10-16 22:36:29 +02:00
Conor McCarthy
62badbff7a
vkd3d-shader/dxil: Validate the entry point info.
2023-10-16 22:36:28 +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
1bd8baf420
ci: Run tests using dxcompiler.
...
The dxcompiler is only used for 64 bit builds, because no official
32 bit implementation is distributed. This might change in the future
building the compiler ourselves and using vkd3d-shader to sign the
generated shaders.
2023-10-16 22:36:17 +02:00
Giovanni Mascellani
680a5aaa78
ci: Build the DXIL parser.
2023-10-16 22:36:17 +02:00