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
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
f064a4022a
vkd3d-shader/hlsl: Validate and record InputPatch/OutputPatch types.
2025-01-29 17:45:46 +01:00
f4d5e05d96
vkd3d-shader/hlsl: Parse InputPatch and OutputPatch objects.
2025-01-29 17:41:51 +01:00
802d7317cb
vkd3d-shader/hlsl: Implement the InterlockedXor() intrinsic.
2025-01-20 15:42:45 +01:00
cbd504e888
vkd3d-shader/hlsl: Implement the InterlockedOr() intrinsic.
2025-01-20 15:42:45 +01:00
5b9634a7b7
vkd3d-shader/hlsl: Implement the InterlockedMin() intrinsic.
2025-01-20 15:42:43 +01:00
63fbe161f2
vkd3d-shader/hlsl: Implement the InterlockedMax() intrinsic.
2025-01-20 15:42:07 +01:00
b447fdce51
vkd3d-shader/hlsl: Implement the InterlockedExchange() intrinsic.
2025-01-20 15:41:07 +01:00
22ab08f4d8
vkd3d-shader/hlsl: Implement the InterlockedCompareExchange() intrinsic.
2025-01-20 15:41:07 +01:00
3b19a4aaf3
vkd3d-shader/hlsl: Implement the InterlockedAnd() intrinsic.
2025-01-20 15:41:07 +01:00
660a71ef22
vkd3d-shader/hlsl: Implement the InterlockedAdd() intrinsic.
2025-01-20 15:40:34 +01:00
a082daeb56
vkd3d-shader/hlsl: Implement the isinf() intrinsic.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-01-16 19:25:02 +01:00
4227858cfe
vkd3d-shader/hlsl: Move RDEF generation to hlsl_codegen.c.
2025-01-10 20:03:14 +01:00
29bac62ba2
vkd3d-shader/hlsl: Move the "dimx" and "dimy" fields to the type-specific union.
2025-01-10 19:38:13 +01:00
0236c480e3
vkd3d-shader/hlsl: Make sm4_get_interpolation_mode() static.
2024-12-19 21:09:32 +01:00
f09ac4959e
vkd3d-shader/hlsl: Implement the GatherCmp() methods.
2024-12-18 17:27:43 +01:00
e8cc288426
vkd3d-shader/hlsl: Move CTAB generation to hlsl_codegen.c.
2024-12-17 16:42:53 +01:00
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
474a0ac4e2
vkd3d-shader/hlsl: Use swizzle helpers in more places.
2024-12-12 17:11:53 +01:00
a905a78a96
vkd3d-shader/hlsl: Use a structure for matrix swizzles.
2024-12-12 17:11:27 +01:00
70e2148fcb
vkd3d-shader/hlsl: Document matrix swizzles.
2024-12-12 16:56:52 +01:00
ed6061dfae
vkd3d-shader/hlsl: Drop the _ir_ infix from enum hlsl_loop_unroll_type.
2024-12-12 16:54:07 +01:00
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
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