Commit Graph

2340 Commits

Author SHA1 Message Date
Zebediah Figura
718c79b823 vkd3d-shader/hlsl: Parse the numthreads attribute. 2022-11-08 20:53:04 +01:00
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
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
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
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
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
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
Giovanni Mascellani
eb7b594002 vkd3d-shader/hlsl: Lower int division. 2022-10-17 17:58:17 +02:00
Giovanni Mascellani
4c13ae5764 vkd3d-shader/hlsl: Lower int absolute value. 2022-10-17 17:58:14 +02:00
Giovanni Mascellani
5442f4236c vkd3d-shader/hlsl: Write SM4 square root instructions. 2022-10-17 17:58:12 +02:00
Giovanni Mascellani
8e5aefb309 vkd3d-shader/hlsl: Parse length() intrinsic. 2022-10-17 17:58:09 +02:00
Zebediah Figura
6b45f290f7 vkd3d-shader/hlsl: Pass a location pointer to init_node().
Instead of a flat location structure.
2022-10-12 21:58:03 +02:00
Zebediah Figura
20fc4375ad vkd3d-shader/hlsl: Introduce a hlsl_new_expr() helper. 2022-10-12 21:58:01 +02:00
Zebediah Figura
1e10b5e616 vkd3d-shader/hlsl: Write SM4 reinterpret instructions. 2022-10-12 21:57:59 +02:00
Zebediah Figura
2d4d2e1244 vkd3d-shader/hlsl: Parse the asuint() intrinsic. 2022-10-12 21:57:57 +02:00
Giovanni Mascellani
1655d309bd vkd3d-shader/hlsl: Write SM4 rsq instructions. 2022-10-10 21:13:04 +02:00
Giovanni Mascellani
d600f0488e vkd3d-shader/hlsl: Parse normalize intrinsic.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
2022-10-10 21:13:03 +02:00
Zebediah Figura
b74a546034 vkd3d-shader/hlsl: Use hlsl_new_constant() in more places. 2022-09-28 19:11:08 +02:00
Zebediah Figura
f8da100052 vkd3d-shader/hlsl: Use hlsl_new_int_constant() in the "primary_expr" rule. 2022-09-28 19:11:05 +02:00
Zebediah Figura
3fc2fdc37f vkd3d-shader/hlsl: Introduce a hlsl_new_bool_constant() helper. 2022-09-28 19:11:02 +02:00
Zebediah Figura
4c5fd9c7b9 vkd3d-shader/hlsl: Introduce a hlsl_new_float_constant() helper. 2022-09-28 19:10:58 +02:00
Zebediah Figura
15a0b44ada vkd3d-shader/hlsl: Pass the arguments to hlsl_new_resource_load() as an indirect structure.
The function has far too many arguments, including multiple different arguments
with the same type. Use a structure for clarity and to avoid errors.

Merge hlsl_new_sample_lod() into hlsl_new_resource_load() accordingly.
2022-09-27 20:14:54 +02:00
Zebediah Figura
fb724d60e3 vkd3d-shader/hlsl: Make the source parameter to hlsl_copy_deref() const. 2022-09-27 20:14:53 +02:00
Zebediah Figura
e3123f5bd0 vkd3d-shader/hlsl: Pass only a template string to hlsl_new_synthetic_var().
Synthesize the internal name from the template inside of this function.
2022-09-27 20:14:51 +02:00
Zebediah Figura
991cddd139 vkd3d-shader/hlsl: Handle failure from hlsl_copy_deref(). 2022-09-27 20:14:49 +02:00
Zebediah Figura
32999fc12b vkd3d-common: Tweak the WARN for VKD3D_ERROR_INVALID_SHADER.
vkd3d-shader does not consume only bytecode anymore.
2022-09-27 20:14:42 +02:00
Zebediah Figura
27a6963d6a vkd3d: Avoid an unused variable warning when building for Win32. 2022-09-27 20:14:35 +02:00
Giovanni Mascellani
d5fd309ef8 vkd3d: Add a macro to mark unreachable code.
This should silence warnings about some branches non returning any value
without requiring additional "return 0" statement or similar.

Also, in theory this might enable to compiler to optimize the program
a little bit more, though that's unlikely to have any measurable effect.
2022-09-27 20:14:27 +02:00