Commit Graph

5863 Commits

Author SHA1 Message Date
Shaun Ren
2b257caea9 vkd3d-shader/hlsl: Don't optimize semantic register allocations in SM1.
This matches the behaviour of fxc/d3dcompiler.
2025-06-02 20:53:00 +02:00
Nikolay Sivov
b6ef417e71 vkd3d-shader/fx: Handle bool types when parsing fx_2_0 assignment values. 2025-06-02 20:51:38 +02:00
Nikolay Sivov
c895f63a1c vkd3d-shader/fx: Fix a crash in fx -> d3d-asm when named values are not defined. 2025-06-02 20:51:38 +02:00
Nikolay Sivov
108f4fe47e vkd3d-shader/fx: Fix reading the assignment value base type when parsing fx_2_0. 2025-06-02 20:51:33 +02:00
Nikolay Sivov
4e2fefdfdf vkd3d-shader/fx: Use correct array sizes for the fx_2_0 states. 2025-06-02 20:43:44 +02:00
Nikolay Sivov
4ef4baa6bf vkd3d-shader/fx: Fix some typos in fx_2_0 state names. 2025-06-02 20:43:44 +02:00
Nikolay Sivov
68386f5180 vkd3d-shader/fx: Print packoffset() modifiers in fx -> d3d-asm output.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-02 20:43:44 +02:00
Nikolay Sivov
6b2800fa99 vkd3d-shader/fx: Print explicit buffer bind points in fx -> d3d-asm output.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-02 20:43:27 +02:00
Nikolay Sivov
e33189546a vkd3d-shader/fx: Use variable unpacked size when setting buffer sizes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-06-02 20:41:37 +02:00
Giovanni Mascellani
9f0185f304 vkd3d-shader/msl: Support the ABSNEG source modifier. 2025-06-02 20:36:42 +02:00
Giovanni Mascellani
bc0dd891c3 vkd3d-shader/glsl: Support the ABSNEG source modifier. 2025-06-02 20:35:48 +02:00
Giovanni Mascellani
10be58a74f vkd3d-shader/msl: Ignore the PARTIALPRECISION destination modifier. 2025-06-02 20:33:01 +02:00
Giovanni Mascellani
9f5db1e3e4 vkd3d-shader/glsl: Ignore the PARTIALPRECISION destination modifier. 2025-06-02 20:32:46 +02:00
Giovanni Mascellani
df8b611334 vkd3d-shader/msl: Accept and ignore the REFACTORING_ALLOWED global flag. 2025-06-02 20:32:36 +02:00
Giovanni Mascellani
5998723e7c vkd3d-shader/glsl: Accept and ignore the REFACTORING_ALLOWED global flag. 2025-06-02 20:31:19 +02:00
Elizabeth Figura
847c008b49 vkd3d-shader/ir: Split TEX into two separate vsir opcodes.
The two have the same d3dbc opcode, but have different names and different semantics.
2025-06-02 20:13:52 +02:00
Elizabeth Figura
b25362e036 vkd3d-shader/ir: Split TEXCOORD into two separate vsir opcodes.
The two have the same d3dbc opcode, but have different names and different semantics.
2025-06-02 20:12:27 +02:00
Henri Verbeet
618d8e6a4a vkd3d-shader/msl: Make the generated main function static.
We only need to export the entry point.
2025-06-02 20:11:08 +02:00
Henri Verbeet
7929ba9747 vkd3d-shader: Move vkd3d_siv_from_sysval_indexed() to hlsl_codegen.c. 2025-06-02 20:10:46 +02:00
Shaun Ren
d5dcf31123 vkd3d-shader/hlsl: Store stream index in struct hlsl_semantic.
In addition, support stream indices in tpf_write_signature().
2025-06-02 19:59:22 +02:00
Shaun Ren
d368d18527 vkd3d-shader/hlsl: Generate vsir instructions for indexed output streams in geometry shaders. 2025-06-02 19:53:25 +02:00
Shaun Ren
7da7ccaf45 vkd3d-shader/hlsl: Emit dcl_stream instructions for SM5 geometry shaders. 2025-06-02 19:53:25 +02:00
Giovanni Mascellani
a743d9ae60 vkd3d-shader/dxil: Remove bitcast helpers.
They are useless, since the source is already a union with the
needed types.
2025-06-02 19:52:25 +02:00
Giovanni Mascellani
0a1e7b5f64 vkd3d-shader/dxil: Generate CONSTANT values in sm6_parser_constants_init() for null scalars. 2025-06-02 19:52:25 +02:00
Giovanni Mascellani
79ec2fe9f2 vkd3d-shader/dxil: Generate specialized values in sm6_parser_constants_init() for casts.
Depending on the casted operand, the generated values can be
ICB, IDXTEMP or GROUPSHAREDMEM.

The cast decoding code is entirely moved to the second pass, so
that we avoid abusing registers to temporarily store other data.
2025-06-02 19:51:22 +02:00