Elizabeth Figura
25c6d16b45
vkd3d-shader/hlsl: Use the casted value in exp().
2025-01-28 13:14:50 +01:00
Francisco Casas
4d18fb39b6
vkd3d-shader/hlsl: Don't forbid first base type cast on var assignments.
2025-01-22 14:46:02 +01:00
Francisco Casas
0a15ab702f
vkd3d-shader/hlsl: Don't count cast to param type on IN as part of OUT var's lhs.
...
If the parameter is HLSL_STORAGE_IN, we add a cast from the arg to the
param type so that it can enter the function, however this cast should
not be considered part of the lhs on the implicit assignment that happens
if the var is also HLSL_STORAGE_OUT.
2025-01-22 14:39:20 +01:00
Francisco Casas
b55fe1950e
vkd3d-shader/hlsl: Support non-size-changing lhs casts.
2025-01-22 14:38:10 +01:00
Francisco Casas
c2e224c5fb
vkd3d-shader/hlsl: Delay lowering complex casts until after parse time.
...
While so far it has been posible to do this at parse time, this must
happen after knowing if the complex cast is on the lhs or not.
The modified tests show that before this patch we are currently
miscompiling when this happens, because a complex lhs cast is transformed
into a load, and add_assigment() just stores to the generated "cast"
temp.
2025-01-22 14:34:19 +01:00
Anna (navi) Figueiredo Gomes
c7b209124b
vkd3d-shader/hlsl: Consider conversions across all parameters in function_compare().
...
For example, given two arguments, half3 and float, and two functions,
func(float, float) and func(float3, float3), fxc/d3dcompiler prefers to
widen both arguments to float3.
2025-01-22 14:18:54 +01:00
Shaun Ren
a9d7c65eb8
vkd3d-shader/hlsl: Forbid declaring parameters as both out and const.
...
Note that inout const parameters are allowed.
2025-01-21 14:03:44 +01:00
Shaun Ren
802d7317cb
vkd3d-shader/hlsl: Implement the InterlockedXor() intrinsic.
2025-01-20 15:42:45 +01:00
Shaun Ren
cbd504e888
vkd3d-shader/hlsl: Implement the InterlockedOr() intrinsic.
2025-01-20 15:42:45 +01:00
Shaun Ren
5b9634a7b7
vkd3d-shader/hlsl: Implement the InterlockedMin() intrinsic.
2025-01-20 15:42:43 +01:00
Shaun Ren
63fbe161f2
vkd3d-shader/hlsl: Implement the InterlockedMax() intrinsic.
2025-01-20 15:42:07 +01:00
Shaun Ren
b447fdce51
vkd3d-shader/hlsl: Implement the InterlockedExchange() intrinsic.
2025-01-20 15:41:07 +01:00
Shaun Ren
3fb47373a1
vkd3d-shader/hlsl: Implement the InterlockedCompareStore() intrinsic.
2025-01-20 15:41:07 +01:00
Shaun Ren
22ab08f4d8
vkd3d-shader/hlsl: Implement the InterlockedCompareExchange() intrinsic.
2025-01-20 15:41:07 +01:00
Shaun Ren
3b19a4aaf3
vkd3d-shader/hlsl: Implement the InterlockedAnd() intrinsic.
2025-01-20 15:41:07 +01:00
Shaun Ren
660a71ef22
vkd3d-shader/hlsl: Implement the InterlockedAdd() intrinsic.
2025-01-20 15:40:34 +01:00
Nikolay Sivov
a082daeb56
vkd3d-shader/hlsl: Implement the isinf() intrinsic.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-01-16 19:25:02 +01:00
Elizabeth Figura
29bac62ba2
vkd3d-shader/hlsl: Move the "dimx" and "dimy" fields to the type-specific union.
2025-01-10 19:38:13 +01:00
Anna (navi) Figueiredo Gomes
f09ac4959e
vkd3d-shader/hlsl: Implement the GatherCmp() methods.
2024-12-18 17:27:43 +01:00
Henri Verbeet
c4f69f4d3d
vkd3d-shader/hlsl: Prefer overload candidates without component count widening.
2024-12-16 17:09:40 +01:00
Henri Verbeet
64bb4150f0
vkd3d-shader/hlsl: Prefer overload candidates without component type narrowing.
2024-12-16 17:09:40 +01:00
Henri Verbeet
32d432ab5e
vkd3d-shader/hlsl: Prefer overload candidates with matching component types.
2024-12-16 17:09:40 +01:00
Henri Verbeet
6b8878377f
vkd3d-shader/hlsl: Prefer overload candidates with matching component type classes.
2024-12-16 17:09:40 +01:00
Henri Verbeet
63fce3062e
vkd3d-shader/hlsl: Prefer overload candidates without component count narrowing.
2024-12-16 17:09:40 +01:00
Elizabeth Figura
474a0ac4e2
vkd3d-shader/hlsl: Use swizzle helpers in more places.
2024-12-12 17:11:53 +01:00