Elizabeth Figura
fbd17266cf
vkd3d-shader/hlsl: Do not abort on variable redefinition.
...
There is no harm in defining two variables with the same name.
2025-01-29 17:58:00 +01:00
Elizabeth Figura
2863d86bcc
vkd3d-shader/hlsl: Do not define a separate scope for function parameters.
...
Remove the no longer needed code to detect redefinition in this case.
2025-01-29 17:58:00 +01:00
Shaun Ren
f064a4022a
vkd3d-shader/hlsl: Validate and record InputPatch/OutputPatch types.
2025-01-29 17:45:46 +01:00
Shaun Ren
f4d5e05d96
vkd3d-shader/hlsl: Parse InputPatch and OutputPatch objects.
2025-01-29 17:41:51 +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
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
Henri Verbeet
4227858cfe
vkd3d-shader/hlsl: Move RDEF generation to hlsl_codegen.c.
2025-01-10 20:03:14 +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
Henri Verbeet
0236c480e3
vkd3d-shader/hlsl: Make sm4_get_interpolation_mode() static.
2024-12-19 21:09:32 +01:00
Anna (navi) Figueiredo Gomes
f09ac4959e
vkd3d-shader/hlsl: Implement the GatherCmp() methods.
2024-12-18 17:27:43 +01:00
Henri Verbeet
e8cc288426
vkd3d-shader/hlsl: Move CTAB generation to hlsl_codegen.c.
2024-12-17 16:42:53 +01:00
Elizabeth Figura
09095403ac
vkd3d-shader/hlsl: Store swizzles in vsir format.
...
The previous format matched sm1 and sm4, but if we're going to be feeding
everything through vsir, we want vsir's format.
2024-12-12 17:20:23 +01:00
Elizabeth Figura
474a0ac4e2
vkd3d-shader/hlsl: Use swizzle helpers in more places.
2024-12-12 17:11:53 +01:00
Elizabeth Figura
a905a78a96
vkd3d-shader/hlsl: Use a structure for matrix swizzles.
2024-12-12 17:11:27 +01:00
Elizabeth Figura
70e2148fcb
vkd3d-shader/hlsl: Document matrix swizzles.
2024-12-12 16:56:52 +01:00
Victor Chiletto
ed6061dfae
vkd3d-shader/hlsl: Drop the _ir_ infix from enum hlsl_loop_unroll_type.
2024-12-12 16:54:07 +01:00
Victor Chiletto
351d58a95b
vkd3d-shader/hlsl: Partially defer continue resolution.
...
We need 'for' iter blocks to be separate for loop unrolling.
2024-12-12 16:41:34 +01:00
Shaun Ren
2c9cf7c78b
vkd3d-shader/hlsl: Implement normalization of binary expressions.
...
We normalize binary expressions by attempting to group constants
together, in order to facilitate further simplification of the
expressions.
For any binary operator OP, non-constants x, y, and constants a, b, we
apply the following rewrite rules:
a OP x -> x OP a, if OP is commutative.
(x OP a) OP b -> x OP (a OP b), if OP is associative.
(x OP a) OP y -> (x OP y) OP a, if OP is associative and commutative.
x OP (y OP a) -> (x OP y) OP a, if OP is associative.
Note that we consider floating point operations to be
non-associative.
2024-12-11 15:32:22 +01:00