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
Giovanni Mascellani
93fb51c899
vkd3d-shader/dxil: Generate CONSTANT values in sm6_parser_constants_init() for floating-point values.
2025-06-02 19:46:23 +02:00
Giovanni Mascellani
d36e37555a
vkd3d-shader/dxil: Generate CONSTANT values in sm6_parser_constants_init() for integer values.
2025-06-02 19:46:23 +02:00
Giovanni Mascellani
c050c8be75
vkd3d-shader/dxil: Do not touch the parser current value in instruction_dst_param_init_temp_vector().
...
The stored value is never read, the caller will overwrite it with
the SSA register generated by the whole DXIL instruction.
Since the helper is always used for UINT instructions, change and
rename it accordingly, so we don't have the problem of finding out
which data type to use.
2025-06-02 19:45:54 +02:00
Nikolay Sivov
87ec2d9897
vkd3d-shader/fx: Fix writing fx_2_0 structure parameters.
...
Currently structure type descriptions get interleaved with variable
length string data. The solution is to write all fixed length fields
first, then append strings.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-05-27 20:24:24 +02:00
Henri Verbeet
e17a98f870
vkd3d-shader: Remove some newlines from vkd3d-shader error messages.
2025-05-27 17:12:13 +02:00
Nikolay Sivov
c4c7f10d99
vkd3d-shader/fx: Fix the total buffer size calculation in write_fx_4_buffer().
...
The total size should take variable alignment/padding into account.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-05-24 21:32:22 +02:00
Nikolay Sivov
2e40154801
vkd3d-shader/fx: Use the correct field indices when writing structure default values.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-05-24 21:27:01 +02:00
Nikolay Sivov
a06ecb6867
vkd3d-shader/fx: Use the correct value range for bool initializers.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-05-24 21:24:59 +02:00
Nikolay Sivov
11d4fcff46
vkd3d-shader/fx: Handle nameless structure types.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-05-24 21:19:42 +02:00
Shaun Ren
a4e43402e5
vkd3d-shader/hlsl: Support void pass-through hull shader control point functions.
2025-05-24 21:13:00 +02:00
Shaun Ren
e7b2ca28ab
vkd3d-shader/hlsl: Fix the register string for patch arrays in debug_register().
2025-05-24 21:03:56 +02:00
Elizabeth Figura
f5e0c47811
vkd3d-shader/ir: Use add_signature_element() to add clip planes.
...
In particular, ensure that the semantic name is not NULL. This is necessary to
avoid a crash when a later pass using vsir_signature_find_element_by_name(),
e.g. vsir_program_insert_vertex_fog(), iterates over the signature including the
new element.
2025-05-24 21:02:17 +02:00
Giovanni Mascellani
bd6dbd096f
vkd3d-shader/dxil: Reimplement aggregate indexing using specialized value types.
...
As opposed to just touching the vsir register description, which
should be removed soon.
2025-05-24 20:44:45 +02:00
Giovanni Mascellani
6a85df013b
vkd3d-shader/dxil: Pass a reference to the SM6 parser to sm6_register_from_value().
2025-05-24 20:44:45 +02:00
Giovanni Mascellani
b0940729ff
vkd3d-shader/dxil: Pass a reference to the SM6 parser to src_param_init_from_value().
2025-05-24 20:44:45 +02:00