Commit Graph

1549 Commits

Author SHA1 Message Date
Giovanni Mascellani
e29706d366 tests: Check that side effects do not happen after discard. 2024-04-10 08:55:33 -05:00
Nikolay Sivov
8d78e3a821 vkd3d-shader/hlsl: Support refract() intrinsic.
With some changes by Giovanni Mascellani.
2024-04-10 08:55:27 -05:00
Nikolay Sivov
fd9e1a87ff vkd3d-shader/hlsl: Test refract() intrinsic.
With some changes by Giovanni Mascellani.
2024-04-10 08:55:26 -05:00
Conor McCarthy
9d7f63dc26 vkd3d: Validate that a resource with initial state RENDER_TARGET is a render target. 2024-04-10 08:55:11 -05:00
Conor McCarthy
78301d7202 vkd3d: Validate presence of flag ALLOW_RENDER_TARGET or ALLOW_DEPTH_STENCIL for multisampled resources. 2024-04-10 08:55:11 -05:00
Conor McCarthy
e46de1daa2 tests/d3d12: Test resource flags for multisampled resources. 2024-04-10 08:55:09 -05:00
Stefan Dösinger
a7860ae752 vkd3d: Implement reopening existing caches. 2024-04-10 08:54:58 -05:00
Stefan Dösinger
26387e1d4b tests: Add CreateShaderCacheSession pointer clearing tests.
Native's behavior is inconsistent. It sets the pointer to NULL when it
fails to open an existing cache due to a version mismatch, but leaves
the pointer untouched when the description fails validation.
2024-04-10 08:54:56 -05:00
Giovanni Mascellani
0be29f78c0 tests: Pop the test context when leaving its scope. 2024-04-10 08:54:51 -05:00
Giovanni Mascellani
59a5d8f852 tests: Add llvmpipe among the Mesa drivers. 2024-04-10 08:54:50 -05:00
Giovanni Mascellani
ecd38f3d1b tests: Print the device name. 2024-04-10 08:54:50 -05:00
Giovanni Mascellani
7cfb02cfd3 tests: Skip some tests that crash on llvmpipe. 2024-04-10 08:54:50 -05:00
Giovanni Mascellani
0b2ce5c13a tests: Mark some test failures as todo on llvmpipe. 2024-04-10 08:54:50 -05:00
Conor McCarthy
cb5411408a vkd3d-shader/dxil: Implement DX intrinsic CalculateLOD. 2024-04-10 08:54:23 -05:00
Conor McCarthy
bdfa14d219 tests/hlsl: Add tests for CalculateLevelOfDetail().
Includes improvements made by Giovanni Mascellani.
2024-04-10 08:54:23 -05:00
Francisco Casas
e9559c394b vkd3d-shader/hlsl: Allow KW_PIXELSHADER and KW_VERTEXSHADER as stateblock lhs. 2024-04-10 08:54:23 -05:00
Francisco Casas
ef9ae22ed0 vkd3d-shader/hlsl: Store state block on pass variables. 2024-04-10 08:54:23 -05:00
Francisco Casas
a99bcb1196 vkd3d-shader/hlsl: Parse list of state blocks. 2024-04-10 08:54:23 -05:00
Francisco Casas
ee0d439a1b vkd3d-shader/hlsl: Parse and store state blocks on variables. 2024-04-10 08:54:23 -05:00
Francisco Casas
73ef6907bc tests: Add tests for "compile" and CompileShader() syntax. 2024-04-10 08:54:23 -05:00
Francisco Casas
83f4b46fb1 tests: Add tests for fxgroup syntax. 2024-04-10 08:54:23 -05:00
Francisco Casas
00c8cf1bcc tests: Test function call syntax for state blocks. 2024-04-10 08:54:23 -05:00
Francisco Casas
9ede222714 tests: Add more state block syntax tests. 2024-04-10 08:54:23 -05:00
Henri Verbeet
d1e16514d0 tests/test-driver: Avoid "head" with negative line count.
It's not supported on macOS, and not needed here.
2024-04-09 12:28:51 -05:00
Giovanni Mascellani
ca2f54e729 ci: Delimit building each commit with a collapsible section. 2024-04-09 12:28:10 -05:00
Zebediah Figura
269cdad7b9 vkd3d-shader/hlsl: Consider any valid register reservation to invoke manual packing.
Regardless of the type of the variable.
2024-04-09 12:27:53 -05:00
Zebediah Figura
bdbf5e7d74 tests: Add more tests for manual packing. 2024-04-09 12:27:53 -05:00
Zebediah Figura
ce50c3a186 vkd3d-shader/hlsl: Use hlsl_type_is_resource() for unbounded array checks.
Not all objects can be unbounded descriptors.
2024-04-09 12:27:51 -05:00
Zebediah Figura
083a58767a tests: Test HLSL unbounded array syntax.
Change the shader in test_unbounded_samplers() to also test a nested array.
Note that the changed shader compiles to the same bytecode.
2024-04-09 12:27:49 -05:00
Conor McCarthy
e72c3bab71 vkd3d-shader/spirv: Ensure the data register is UINT in spirv_compiler_emit_store_tgsm(). 2024-04-09 12:27:30 -05:00
Francisco Casas
53e4d6eedb vkd3d-shader/hlsl: Use LOGIC_OR instead of BIT_OR in any().
Note that BIT_OR is not available for SM1 bools, so we must prefer
LOGIC_OR when possible.
2024-04-09 12:27:07 -05:00
Francisco Casas
2621fc9572 vkd3d-shader/ir: Add missing src swizzle in vsir_program_lower_texkills(). 2024-04-09 12:27:06 -05:00
Francisco Casas
808ec288cf tests: Add failing test for clip.shader_test in SM1.
We are not properly translating texkill to spir-v since it is only
considering the first component.
2024-04-09 12:27:04 -05:00
Francisco Casas
3503145ced tests: Report missing signature element in openGL runner. 2024-04-09 12:27:03 -05:00
Francisco Casas
3a0a4b625f vkd3d-shader/hlsl: Merge HLSL_OP3_MOVC into HLSL_OP3_TERNARY. 2024-04-09 12:27:02 -05:00
Francisco Casas
19fd43214b vkd3d-shader/hlsl: Ensure that TERNARY condition is always bool.
Also, properly casting it to float in lower_ternary() for SM1
avoids creating ABS and NEG on bool types.
2024-04-09 12:26:59 -05:00
Henri Verbeet
4f589356f1 tests: Free the shader blobs once we're done with them in test_create_pipeline_state(). (Valgrind). 2024-04-04 22:20:35 +02:00
Stefan Dösinger
8653ce17cf tests: Add tests for creating D3D12ShaderCacheSession objects. 2024-04-04 22:19:46 +02:00
Nikolay Sivov
4b0a328a2b vkd3d-shader/hlsl: Allow 'export' modifier on functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-04-03 22:24:15 +02:00
Nikolay Sivov
c509c85f63 vkd3d-shader/hlsl: Allow annotations on constant buffers.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-04-02 23:10:40 +02:00
Henri Verbeet
64418dd290 tests/shader_runner: Cleanup on insufficient GLSL support in gl_runner_init() (Valgrind). 2024-04-02 23:10:28 +02:00
Henri Verbeet
46bd3b1545 tests: Initialise resource_desc1.Layout in test_get_copyable_footprints() (Valgrind). 2024-04-02 23:10:18 +02:00
Giovanni Mascellani
2a101cf697 tests: Include vkd3d_d3d12.h in utils.h.
RECT and D3D12_BOX are used from there.
2024-04-02 23:09:53 +02:00
Conor McCarthy
d72d5c35d1 vkd3d-shader/dxil: Implement DX intrinsics Dot2, Dot3 and Dot4. 2024-04-02 23:09:28 +02:00
Conor McCarthy
2909a5aacc vkd3d-shader/dxil: Implement DX intrinsic MakeDouble. 2024-04-02 23:09:23 +02:00
Conor McCarthy
cf6e518f1e tests/hlsl: Add tests for asdouble(). 2024-04-02 23:09:20 +02:00
Francisco Casas
b1eaf8327b tests/test-driver: Print line where vkd3d_unreachable() was hit.
With this, a test that fails because vkd3d_unreacheable() was hit, will
now display the error line.

    FAIL: tests/hlsl/some-test.shader_test
       (SM4.0-SM5.1)OpenGL/SPIR-V 43[XF] 79[XF] 126[XF] 149[XF] 159[XF]
       [AF] vkd3d/libs/vkd3d-shader/hlsl.c:246: Aborting, reached unreachable code.
       [SIGABRT] Aborted (core dumped)
2024-03-27 22:37:52 +01:00
Francisco Casas
9a90b9591c tests/test-driver: Display [SIGABRT] and [SIGSEGV] tags.
Some times the test can be aborted for reasons others than failed
assertions, such as segmentation faults or reaching unreacheable code.

This commit adds purple tags to the test driver for visual clarity.
2024-03-27 22:37:48 +01:00
Conor McCarthy
11ee92ed7e vkd3d-shader/dxil: Implement DX intrinsic Discard. 2024-03-27 22:37:42 +01:00
Zebediah Figura
6b6e4bc212 vkd3d-shader: Add a compile option to control whether implicit truncation warnings are printed.
d3dcompiler and d3dx9 versions before 42 don't emit this error; this will be
necessary to emulate that behaviour.

Other warnings exist that are introduced in different d3dcompiler versions,
although there are not very many distinct HLSL warnings to begin with.

We could of course group all these together under a single compiler option, but
I find that using separate top-level options is unilaterally friendlier to an
API consumer, and simpler to implement as well. It also in some sense maps
conceptually to e.g. "-Wno-implicit-conversion".
2024-03-27 22:37:34 +01:00