Giovanni Mascellani
31e4cbba2e
vkd3d-shader/dxil: Rewrite sm6_value_get_constant_uint64() in terms of the SM6 value.
...
Instead of using the VSIR register.
2025-06-10 17:40:17 +02:00
Giovanni Mascellani
2e3f99e61e
vkd3d-shader/dxil: Rewrite sm6_value_get_constant_uint() in terms of the SM6 value.
...
Instead of using the VSIR register.
2025-06-10 17:40:17 +02:00
Giovanni Mascellani
f4f2617584
vkd3d-shader/dxil: Rewrite sm6_value_is_ssa() in terms of the value type.
2025-06-10 17:40:17 +02:00
Giovanni Mascellani
361ecd6cf5
vkd3d-shader/dxil: Rewrite sm6_value_is_undef() in terms of the value type.
2025-06-10 17:40:17 +02:00
Giovanni Mascellani
0ac20b3029
vkd3d-shader/dxil: Rewrite sm6_value_is_constant() in terms of the value type.
2025-06-10 17:40:17 +02:00
Giovanni Mascellani
7e134f85a4
vkd3d-shader/dxil: Do not set the value type in sm6_parser_function_init().
...
It is rewritten in all branches that produce a value.
VALUE_TYPE_REG is therefore never set and can be retired at last.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
0e406cf0a8
vkd3d-shader/dxil: Do not set the value type in sm6_parser_declare_global().
...
It is rewritten in all branches.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
00b3fb96d9
vkd3d-shader/dxil: Store a SM6 value in sm6_phi.
...
Rather than a VSIR register.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
a9a3100cca
vkd3d-shader/dxil: Represent non uniformness in the SM6 value.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
af5e5fe31b
vkd3d-shader/dxil: Generate specialized values in sm6_parser_emit_cast() for trivial casts.
...
There is currently no need to make a special case for 16-bit
values, since the SPIR-V backend currently confuses them with
32-bit values. The generated VSIR code is not correct, but that
will have to be handled at a different level.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
7f04060f33
vkd3d-shader/dxil: Handle 16-bit values uniformly in sm6_map_cast_op().
...
This makes the logic more transparent, and it eases handling
native 16-bit values once they will be supported.
2025-06-04 13:03:57 +02:00
Giovanni Mascellani
b9ce828451
vkd3d-shader/dxil: Validate that floating-point extension casts increase bit width.
2025-06-04 13:01:51 +02:00
Giovanni Mascellani
a91fb0523a
vkd3d-shader/dxil: Validate that integer extension casts increase bit width.
2025-06-04 13:01:51 +02:00
Giovanni Mascellani
a90b74baaa
vkd3d-shader/dxil: Validate that floating-point truncation casts decrease bit width.
...
Similarly to the integer case.
2025-06-04 13:01:45 +02:00
Giovanni Mascellani
0e006715d8
vkd3d-shader/dxil: Do not use field "reg" in of sm6_value when writing bitcasts.
...
It's going to be removed; the generated register data type is the
right thing to look at here.
2025-06-04 12:34:21 +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
Henri Verbeet
e17a98f870
vkd3d-shader: Remove some newlines from vkd3d-shader error messages.
2025-05-27 17:12:13 +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