Commit Graph

3319 Commits

Author SHA1 Message Date
Zebediah Figura
d6799bd5d3 vkd3d-shader/hlsl: Parse function attributes. 2022-11-08 20:53:03 +01:00
Zebediah Figura
da56f41ceb vkd3d-shader/hlsl: Use hlsl_new_synthetic_var() in hlsl_new_func_decl(). 2022-11-08 20:53:01 +01:00
Zebediah Figura
1019bbead6 vkd3d-shader/hlsl: Add a hlsl_fixme() for compute shader thread counts.
In particular so that we don't cause test crashes by outputting invalid compute
shaders.
2022-11-08 20:52:59 +01:00
Zebediah Figura
c0782a9029 tests: Add some tests for HLSL attribute syntax. 2022-11-08 20:52:59 +01:00
Zebediah Figura
4d17758657 tests: Always compile HLSL shaders.
Do not rely on a draw or dispatch command to do this.

This allows more efficiently testing syntax, in cases where testing the actual
shader functionality is not interesting.
2022-11-08 20:52:57 +01:00
Zebediah Figura
520c7457a9 vkd3d-shader/sm4: Use a flat array to store destination types.
This cuts about 12 kB off of the 64-bit build.
2022-11-08 20:52:36 +01:00
Zebediah Figura
4173158c8b vkd3d-shader/sm4: Use a flat array to store source types. 2022-11-08 20:52:34 +01:00
Zebediah Figura
e2aed38509 vkd3d-shader/spirv: Avoid using DXBC-specific definitions. 2022-11-08 20:52:32 +01:00
Zebediah Figura
ba08825ccd vkd3d-shader/sm4: Use the VKD3D_DXBC_MAX_SOURCE_COUNT macro where possible. 2022-11-08 20:52:31 +01:00
Zebediah Figura
35b48a8b04 vkd3d-shader/spirv: Rename struct vkd3d_dxbc_compiler to struct spirv_compiler.
We would like to generate SPIR-V for input formats other than DXBC.

The "vkd3d_" prefix is dropped, partly to make names shorter, and partly to help
clarify what is an internal function.

I prefer avoiding the vkd3d_* prefix on all internal functions, for these
reasons. However, I'm open to restoring it.
2022-11-08 20:52:29 +01:00
Zebediah Figura
58c7c4b806 vkd3d-common: Always prefix debug output with "vkd3d".
Make it clear which library the debug output is coming from, without relying on
the function name including "vkd3d".
2022-11-08 20:52:27 +01:00
Zebediah Figura
c416627e64 vkd3d-shader/hlsl: Propagate copies for resource store instructions. 2022-10-31 22:07:47 +01:00
Zebediah Figura
9bdae4dfaa vkd3d-shader/hlsl: Write SM4 UAV store instructions. 2022-10-31 22:07:45 +01:00
Zebediah Figura
03f9d16047 vkd3d-shader/hlsl: Parse UAV stores. 2022-10-31 22:07:44 +01:00
Zebediah Figura
0a2aaa690e vkd3d-shader/hlsl: Implement typed UAV loads. 2022-10-31 22:07:43 +01:00
Zebediah Figura
12e397de9a vkd3d-shader/hlsl: Write SM4 UAV declarations. 2022-10-31 22:07:41 +01:00
Zebediah Figura
2ec67e0f10 vkd3d-shader/hlsl: Allocate UAVs. 2022-10-31 22:07:40 +01:00
Francisco Casas
4096d453c4 tests: Add a test for storing to a UAV array. 2022-10-31 22:07:40 +01:00
Zebediah Figura
8044fce040 tests: Add more tests for UAV allocation. 2022-10-31 22:07:40 +01:00
Zebediah Figura
52069386c4 tests: Fix constructor declaration in the partial UAV write test.
Make sure the test fails for the right reason. Spotted by Francisco Casas.
2022-10-31 22:07:37 +01:00
Francisco Casas
b711b2d66b tests: Add additional tests for explicit casts with flat matrices and vectors. 2022-10-26 23:53:12 +02:00
Francisco Casas
fcef269347 tests: Add additional tests for explicit casts with matrices. 2022-10-26 23:53:12 +02:00
Francisco Casas
588645a79a tests: Add additional tests for explicit casts with vectors. 2022-10-26 23:53:10 +02:00
Francisco Casas
5af7316a12 vkd3d-shader/hlsl: Support explicit cast between component-wise compatible types. 2022-10-25 21:25:58 +02:00
Francisco Casas
d21fd584b1 vkd3d-shader/hlsl: Support implicit casts between component-wise equal types. 2022-10-25 21:25:57 +02:00
Francisco Casas
1c77811648 vkd3d-shader/hlsl: Remove incorrect criteria for accepting implicit casts. 2022-10-25 21:25:55 +02:00
Francisco Casas
d93ce28995 vkd3d-shader/hlsl: Handle complex types in add_cast().
This extends the support of this function, whether doing broadcasts or
component-wise casts, to struct and array types.
2022-10-25 21:25:51 +02:00
Francisco Casas
fb751b48c5 tests: Add additional tests for implicit casts that should fail. 2022-10-25 21:25:51 +02:00
Francisco Casas
0a345a2b73 vkd3d-shader/hlsl: Rename "t1" and "t2" arguments as "src" and "dst". 2022-10-25 21:25:49 +02:00
Brendan Shanks
963ea98a52 vkd3d-common: Add a Windows implementation of vkd3d_set_thread_name(). 2022-10-25 21:25:38 +02:00
Zebediah Figura
0ef04659c7 vkd3d-shader/hlsl: Parse UAV types. 2022-10-19 21:59:55 +02:00
Zebediah Figura
fea50d243c vkd3d-shader/hlsl: Parse texture index expressions. 2022-10-19 21:59:55 +02:00
Zebediah Figura
7115a94063 vkd3d-shader/hlsl: Cast array indices inside of add_array_load().
Mostly in the interest of keeping the yacc code as simple as possible.
2022-10-19 21:59:55 +02:00
Zebediah Figura
62fd13059b tests: Add a basic shader test for typed UAV loads. 2022-10-19 21:59:55 +02:00
Zebediah Figura
75494a4ae6 tests: Add a basic shader test for compute shaders. 2022-10-19 21:59:29 +02:00
Biswapriyo Nath
6f1f14d97a include: Add the PFN_D3D12_SERIALIZE_ROOT_SIGNATURE typedef. 2022-10-19 21:59:22 +02:00
Biswapriyo Nath
c9198735fd include: Add the PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER typedef. 2022-10-19 21:59:22 +02:00
Giovanni Mascellani
c644244bcd tests: Test float operations with uniform inputs.
The point of the "uniform" variants is to avoid hiding code generation
bugs because of the constant folding optimization.
2022-10-19 21:59:18 +02:00
Giovanni Mascellani
b6a6a927a7 tests: Test sign rules for float modulus. 2022-10-19 21:59:18 +02:00
Giovanni Mascellani
d1da5436f4 tests: Test sign rules for integer division and modulus. 2022-10-19 21:59:18 +02:00
Giovanni Mascellani
0a07ac6f88 vkd3d-shader/hlsl: Lower float modulus.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
2022-10-19 21:59:17 +02:00
Giovanni Mascellani
eb119878f7 vkd3d-shader/hlsl: Lower int modulus.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
2022-10-19 21:59:15 +02:00
Giovanni Mascellani
85856473f6 vkd3d-shader/hlsl: Write SM4 fractional part instructions.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
2022-10-19 21:59:13 +02:00
Francisco Casas
09d7442cb1 tests: Test explicit casts between types that are component-wise compatible. 2022-10-17 17:59:04 +02:00
Francisco Casas
653b109d8f tests: Test implicit casts between types that are equal component-wise. 2022-10-17 17:59:01 +02:00
Francisco Casas
5a1b0dbf44 vkd3d-shader/hlsl: Always go through implicit conversion in assignments.
Otherwise we silently skip some type checks.
2022-10-17 17:58:56 +02:00
Francisco Casas
e56db9bda5 tests: Test for invalid complex broadcasts. 2022-10-17 17:58:56 +02:00
Francisco Casas
791f8a8faa tests: Rename structs for readability in broadcast test. 2022-10-17 17:58:53 +02:00
Francisco Casas
3bae0c92c7 tests: Set ULPs to 2 in normalize() test.
Otherwise the test fails on a NVIDIA GeForce GTX 1050 Ti GPU.

The error being:
shader_runner:535:Section [test], line 9: Test failed: Got {2.72165507e-01, 4.08248246e-01, 5.44331014e-01, 6.80413783e-01}, expected {2.72165537e-01, 4.08248305e-01, 5.44331074e-01, 6.80413842e-01} at (0, 0).
2022-10-17 17:58:50 +02:00
Francisco Casas
ab8f418207 tests: Add missing backslash to restore skipped tests.
Tests after this missing backslash are not being executed since
e9829fdc65.
2022-10-17 17:58:35 +02:00