741c9e5893
vkd3d-shader/hlsl: Introduce hlsl_ir_index.
...
This node type is intended for use during parse-time.
While we parse an indexing expression such as "a[3]", we don't know if
it will end up as part of an expression (in which case it must be folded
into a load) or it is for the lhs of a store (in which case it must be
folded into the store's deref).
2023-04-13 23:05:25 +02:00
1514755043
vkd3d-shader/hlsl: Make a string array const.
2023-04-06 17:52:07 +02:00
725d408974
vkd3d-shader/hlsl: Introduce an hlsl_block_init() helper.
2023-04-06 17:51:40 +02:00
1da5a9a490
vkd3d-shader/hlsl: Introduce an hlsl_block_add_block() helper.
2023-04-06 17:51:38 +02:00
ceac81b816
vkd3d-shader/hlsl: Introduce an hlsl_block_add_instr() helper.
2023-04-06 17:51:36 +02:00
f3e81327dc
vkd3d-shader/hlsl: Consider register() as manual packing for resource fields.
2023-04-04 21:59:49 +02:00
60237cb773
vkd3d-shader/hlsl: Don't allow manual and automatic cbuffer offset packing.
2023-04-04 21:59:45 +02:00
4448d114ad
vkd3d-shader/hlsl: Detect overlaps in cbuffer offsets.
2023-04-04 21:59:43 +02:00
7777c32cac
vkd3d-shader/hlsl: Support packoffset().
2023-04-04 21:59:42 +02:00
9b70971696
vkd3d-shader/hlsl: Rename struct hlsl_reg_reservation fields.
2023-04-04 21:59:39 +02:00
eb71c5f20d
vkd3d-shader/hlsl: Handle round() for SM1.
2023-04-03 18:00:03 +02:00
7a9e393ea0
vkd3d-shader/hlsl: Rename the "type" field of struct hlsl_type to "class".
...
To be consistent with enum hlsl_type_class and HLSL_CLASS_*.
2023-04-03 17:59:24 +02:00
4110f1e547
vkd3d-shader: Fix a few typos in the comments.
2023-03-15 20:13:27 +01:00
f8338ef089
vkd3d-shader/hlsl: Allocate register reservations in a separate pass.
...
This refactoring is required for improving the allocation strategy so it
works with multiple-register variables.
2023-02-22 18:28:19 +01:00
75359e6dbd
vkd3d-shader/hlsl: Respect object reservations even if the object is unused.
2023-02-22 18:28:19 +01:00
c5384b38ee
vkd3d-shader/hlsl: Allocate objects according to register set.
2023-02-22 18:28:19 +01:00
e0031d2a1f
vkd3d-shader/hlsl: Keep an hlsl_reg for each register set in hlsl_ir_var.
2023-02-22 18:28:19 +01:00
d07247249a
vkd3d-shader/hlsl: Store the type's register size for each register set.
2023-02-22 18:28:19 +01:00
315966dc21
vkd3d-shader/hlsl: Leave offset empty for array and struct derefs.
2023-02-22 18:28:19 +01:00
d86db8bcbe
vkd3d-shader/hlsl: Support lit() intrinsic.
2023-02-21 21:09:52 +01:00
2142d31f13
vkd3d-shader/hlsl: Fix number of components when creating a swizzle in copy-prop.
...
Otherwise we may create nodes of different dimensions than the ones we
are replacing.
"count" is the number of components of the source deref (without
considering the swizzle), while "instr_component_count" is the actual
number of components of the instruction to be replaced.
2023-02-20 21:59:31 +01:00
38964214cd
vkd3d-shader/hlsl: Handle early return after a CF block only if there was actually a return somewhere in the CF block.
2023-02-13 22:16:55 +01:00
4b944517b7
vkd3d-shader/hlsl: Inline function calls.
2023-02-13 22:16:53 +01:00
8bdee6681b
vkd3d-shader/hlsl: Lower return statements.
2023-02-13 22:16:51 +01:00
240b2f966f
vkd3d-shader/hlsl: Support abs() for SM1.
2023-02-09 18:03:19 +01:00