1372 Commits

Author SHA1 Message Date
Francisco Casas
8379e5337c tests/shader_runner: Free extensions pointer on vulkan runner (valgrind). 2024-01-25 22:24:32 +01:00
Francisco Casas
48e61fa323 tests/shader_runner: Free runner->uniforms (valgrind). 2024-01-25 22:24:31 +01:00
Francisco Casas
969350a280 tests/shader_runner: Free params.data on test directives (valgrind). 2024-01-25 22:24:30 +01:00
Francisco Casas
8f9b48c455 tests/shader_runner: Pass a pointer to the data when creating uav buffers in d3d12.
The implementation of upload_buffer_data_with_states(), unlike the
implementation of upload_texture_data_with_states(), does not expect a
pointer to a D3D12_SUBRESOURCE_DATA, but rather, a direct pointer to the
data.
2024-01-25 22:24:29 +01:00
Giovanni Mascellani
d304422a34 tests: Mark count buffers as buggy on MoltenVK.
They require Vulkan indirect draw count extension.
2024-01-24 22:38:28 +01:00
Giovanni Mascellani
5d4edba925 tests: Mark a timestamp query test as buggy on MoltenVK.
The generated Vulkan calls look right and do not trigger any
validation error, but the returned timestamp is 0. A valid
timestamp is returned if the CopyResource() call is commented,
or the second EndQuery() call is moved before CopyResource(),
or the first EndQuery() call is commented. I am not seeing any
sensible pattern here, so I guess there is just a bug in
MoltenVK.
2024-01-24 22:38:26 +01:00
Giovanni Mascellani
66cd2af188 tests: Mark clip distance as unsupported on MoltenVK.
At least for tessellation and geometry shaders.
2024-01-24 22:38:23 +01:00
Giovanni Mascellani
9a83e568b4 tests: Mark cull distance as buggy on MoltenVK.
The generated MSL code is not accepted by the Metal runtime, and
it looks wrong anyway.
2024-01-24 22:38:19 +01:00
Giovanni Mascellani
60e0246436 tests: Skip unbounded descriptor ranges tests when they're unsupported.
They are unsupported if the Vulkan descriptor indexing extension
is not available; on MoltenVK it is known to be buggy, so it is
disabled.
2024-01-24 22:38:18 +01:00
Giovanni Mascellani
711ce4e65d tests: Mark loading from stencil as buggy on MoltenVK.
Specifically, MoltenVK seems to be able to load from stencil, but
the specific replicating swizzle (repeating the stencil value on
all the channels) is not honored. The stencil value is read only
on the red channel.
2024-01-24 22:38:15 +01:00
Conor McCarthy
e973271a40 vkd3d-shader/spirv: Handle the ISINF and ISNAN instructions in spirv_compiler_emit_alu_instruction(). 2024-01-24 22:38:04 +01:00
Conor McCarthy
cd674d593e vkd3d-shader/spirv: Implement the ISFINITE instruction. 2024-01-24 22:38:03 +01:00
Conor McCarthy
35d46cf3d9 tests/shader-runner: Add tests for floating point special values. 2024-01-24 22:38:00 +01:00
Zebediah Figura
0f46e7bbad tests: Test signature reflection via D3DReflect().
Ported from Wine.
2024-01-24 22:37:53 +01:00
Zebediah Figura
d1be80e08d tests: Test VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_MAP_SEMANTIC_NAMES. 2024-01-24 22:37:53 +01:00
Francisco Casas
1c73513425 tests: Use the vulkan runner to run SM1 compilation tests.
At the current moment this is a little odd because for SM1 [test]
directives are skipped, and the [shader] directives are not executed by
the shader_runner_vulkan.c:compile_shader() but by the general
shader_runner.c:compile_shader(). So in principle it is a little weird
that we go through the vulkan runner.

But fret not, because in the future we plan to make the parser agnostic
to the language of the tests, so we will get rid of the general
shader_runner.c:compile_shader() function and instead call a
runner->compile_shader() function, defined for each runner. Granted,
most of these may call a generic implementation that uses native
compiler in Windows, and vkd3d-shader on Linux, but it would be more
conceptually correct.
2024-01-24 22:37:44 +01:00
Francisco Casas
671f4ec2b2 tests/shader-runner: Call each runner only once.
If the runners require multiple calls to run_shader_tests() for
different shader model ranges, these are moved inside the sole runner
call.

For the same reason, the trace() messages are also moved inside the
runner calls.
2024-01-24 22:37:34 +01:00
Francisco Casas
79de3ec766 tests/shader-runner: Support reading multiple model range args for qualifiers.
We can now pass (sm<4) and (sm>=4) to "fail" and "todo" qualifiers, and
we can use multiple of these qualifier arguments using "&" for AND and
"|" for OR.

examples:
todo(sm>=4 & sm<6)
todo(sm<4 | sm>6)

parenthesis are not supported.

Adding additional model ranges for the tests, if we need them, should be
easier now, since they only have to be added to the "valid_args" array.
2024-01-24 22:37:30 +01:00
Zebediah Figura
57c4a13024 tests: Add tests for valid conditional types. 2024-01-23 20:26:47 +01:00
Conor McCarthy
b3903636f7 vkd3d-shader/dxil: Implement DX intrinsic Binary. 2024-01-23 20:26:29 +01:00
Nikolay Sivov
2c1905b780 vkd3d-shader/hlsl: Allow annotations on techniques.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-01-23 20:26:19 +01:00
Nikolay Sivov
341963bbec tests/hlsl: Add some tests for annotations. 2024-01-23 20:26:14 +01:00
Giovanni Mascellani
72e2eeaf14 tests: Add a test for SV_ViewportArrayIndex. 2024-01-22 22:19:16 +01:00
Giovanni Mascellani
bd84b96e9f tests: Use test utils to create the pipeline state in test_ps_layer(). 2024-01-22 22:19:16 +01:00
Giovanni Mascellani
245cce02bd tests: Test using SV_RenderTargetArrayIndex in the vertex shader. 2024-01-22 22:19:16 +01:00