Giovanni Mascellani
4a39db797b
vkd3d-shader/ir: Introduce VKD3DSIH_IMUL_LOW.
...
It is meant to compute the lower word of an integer multiplication.
2025-06-24 15:15:56 +02:00
Conor McCarthy
d8edf20c2b
vkd3d-shader/dxil: Convert constant buffer minimum-precision source registers.
2025-06-23 20:12:31 +02:00
Conor McCarthy
9d490b83d4
vkd3d-shader/dxil: Add a null check for the type when validating non-void operands.
2025-06-19 20:45:28 +02:00
Conor McCarthy
c3110d2f94
vkd3d-shader/dxil: Check the destination value is invalid after calling a void function handler.
2025-06-19 20:45:28 +02:00
Conor McCarthy
a410c448ce
vkd3d-shader/dxil: Validate the function return type after calling the handler.
...
The handler writes the destination value.
2025-06-19 20:44:54 +02:00
Giovanni Mascellani
6f092fb84a
vkd3d-shader/ir: Introduce opcode SIN.
...
It is meant to compute sine.
2025-06-19 20:32:50 +02:00
Giovanni Mascellani
322f2e5496
vkd3d-shader/ir: Introduce opcode COS.
...
It is meant to compute cosine, and gradually replace SINCOS, at
least from a certain point in the pipeline on.
2025-06-19 20:32:41 +02:00
Giovanni Mascellani
8b78747629
vkd3d-shader/dxil: Emit 16-bit UNDEFINED and INVALID values as minimum precision registers.
2025-06-18 15:48:55 +02:00
Giovanni Mascellani
b05153e6f9
vkd3d-shader/dxil: Emit 16-bit GROUPSHAREDMEM values as minimum precision registers.
2025-06-18 15:48:55 +02:00
Giovanni Mascellani
39603f4bc2
vkd3d-shader/dxil: Emit 16-bit structured TGSMs as minimum precision.
2025-06-18 15:48:55 +02:00
Giovanni Mascellani
5e1c8056ae
vkd3d-shader/dxil: Emit 16-bit raw TGSMs as minimum precision.
2025-06-18 15:48:55 +02:00
Giovanni Mascellani
7c0da1747a
vkd3d-shader/dxil: Allow constant zero values to be floating point.
...
This fixes commit 59fb3a7893
, where
the floating point alternative was mistakenly ignored.
2025-06-16 17:41:20 +02:00
Giovanni Mascellani
94cbb333f8
vkd3d-shader/dxil: Emit 16-bit ICB values as minimum precision registers.
2025-06-11 18:20:23 +02:00
Giovanni Mascellani
0b5a96d963
vkd3d-shader/dxil: Emit 16-bit SSA values as minimum precision registers.
2025-06-11 18:20:23 +02:00
Giovanni Mascellani
73940cde73
vkd3d-shader/dxil: Emit 16-bit IDXTEMP values as minimum precision registers.
2025-06-11 18:20:23 +02:00
Giovanni Mascellani
5e86d5c21b
vkd3d-shader/dxil: Emit 16-bit arrays as minimum precision types.
...
The type is not explicitly annotated as minimum precision, because
no backend currently cares about that bit anyway. We're still
relying on the fact that in SM 6.0 16-bit types are always
understood as minimum precision.
2025-06-11 18:20:20 +02:00
Giovanni Mascellani
1d780e1a6b
vkd3d-shader/dxil: Emit 16-bit CONSTANT values as minimum precision registers.
2025-06-11 18:10:12 +02:00
Giovanni Mascellani
1b389f29c5
vkd3d-shader/dxil: Remove field "reg" from struct sm6_value.
...
The VSIR register is now always generated dynamically and we
don't have to carry it around.
2025-06-10 17:40:17 +02:00
Giovanni Mascellani
20d8ba7f8d
vkd3d-shader/dxil: Introduce sm6_value_get_constant_float().
...
Similarly to sm6_value_get_constant_uint() and
sm6_value_get_constant_uint64().
2025-06-10 17:40:17 +02:00
Giovanni Mascellani
873043226c
vkd3d-shader/dxil: Rewrite sm6_parser_init_ssa_value() in terms of the SM6 value.
...
Instead of using the VSIR register.
2025-06-10 17:40:17 +02:00
Giovanni Mascellani
59fb3a7893
vkd3d-shader/dxil: Rewrite sm6_value_is_constant_zero() in terms of the SM6 value.
...
Instead of using the VSIR register.
2025-06-10 17:40:17 +02:00
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