Zebediah Figura
8bd5fe3001
d3dcompiler: Track def-use chains for anonymous nodes.
...
This is useful for replacing one instruction with another of a different type,
which is useful for some optimizations such as constant folding.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-02 18:12:57 +02:00
Zebediah Figura
d60b126b24
d3dcompiler: Print the data type when dumping IR.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 09:23:20 +02:00
Zebediah Figura
56be9dde92
d3dcompiler: Rename make_simple_assignment() to new_simple_assignment().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 09:23:17 +02:00
Zebediah Figura
7260f978f3
d3dcompiler: Add the node to the instruction list in new_expr().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 09:23:15 +02:00
Zebediah Figura
6083b1dd39
d3dcompiler: Create the expression in append_binop().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 09:23:12 +02:00
Zebediah Figura
251c8546b5
d3dcompiler: Pass the instruction list to implicit_conversion().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:17 +02:00
Zebediah Figura
9b3e6b1971
d3dcompiler: Add the assignment node to the instruction list in make_assignment().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:14 +02:00
Zebediah Figura
95ef2fa578
d3dcompiler: Append the instruction to its list in new_return().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:11 +02:00
Zebediah Figura
548f763f99
d3dcompiler: Pass an instruction list to the load creation functions.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:10:27 +02:00
Zebediah Figura
142be50629
d3dcompiler: Prepend static initializers to the function body.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:10:21 +02:00
Matteo Bruni
7d92b1abbd
d3dcompiler: Check shader for NULL.
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 17:44:32 +02:00
Zebediah Figura
a9e720e54f
d3dcompiler: Factor out hlsl_ir_var allocation.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 17:32:08 +02:00
Zebediah Figura
610baeac56
d3dcompiler/tests: Add a simple test for global variable initializers.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 17:32:06 +02:00
Zebediah Figura
549fa04cbd
d3dcompiler/tests: Add a couple of extra tests for struct declaration syntax.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 17:32:04 +02:00
Zebediah Figura
f26a58a61b
d3dcompiler/tests: Add a test for struct field semantics.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 17:32:02 +02:00
Matteo Bruni
2d79e04bfe
d3dcompiler: Print float constants with more precision.
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-12 17:16:26 +02:00
Zebediah Figura
24c84947c8
d3dcompiler: Return an HRESULT from parse_hlsl().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 22:07:47 +02:00
Zebediah Figura
fdb3db5275
d3dcompiler: Check for missing return value semantics on the entry point.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 22:03:05 +02:00
Zebediah Figura
d5486b6bb5
d3dcompiler: Allow hlsl_ir_constant to contain only numeric types.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 22:03:03 +02:00
Zebediah Figura
d5a4364f44
d3dcompiler: Emit constructors as sequences of stores to a synthetic variable.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 22:03:01 +02:00
Zebediah Figura
10601d9ac5
d3dcompiler: Cache vector types.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 22:02:57 +02:00
Zebediah Figura
9c985e703b
d3dcompiler: Use the cached scalar type in expr_common_type() where possible.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 22:01:06 +02:00
Zebediah Figura
93f3b062fd
d3dcompiler/tests: Add a test for struct assignment.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-08 21:01:33 +02:00
Zebediah Figura
3b66245922
d3dcompiler: Use hlsl_report_message() where possible.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:54:35 +02:00
Zebediah Figura
f114a0a8e6
d3dcompiler: Fix matrix dimension declaration for matrix<...> syntax.
...
Addendum to 4952bcfa4c
.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:54:35 +02:00
Zebediah Figura
1dcfb01b29
d3dcompiler: Coerce the RHS before unwrapping swizzles.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:54:35 +02:00
Zebediah Figura
24a4f52bbf
d3dcompiler: Remove a redundant check for writemasks on non-numeric types.
...
This can only happen if a swizzle is emitted on a non-numeric type, but this is
checked when emitting swizzles.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:54:35 +02:00
Zebediah Figura
9ba2bb0f3b
d3dcompiler: Fix up the swizzle data type when unwrapping it from the assignment LHS.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:54:35 +02:00
Zebediah Figura
513f0def41
d3dcompiler: Write to the function return value using a separate instruction.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 22:55:55 +02:00
Zebediah Figura
2b77cfb7be
d3dcompiler: Also check the type class when checking for void.
...
As of 867fe22346
, non-void types may have a base_type of HLSL_TYPE_VOID.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 22:55:49 +02:00
Zebediah Figura
c7b90bf348
d3dcompiler: Pass the semantic and location parameters to new_func_decl().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 22:55:40 +02:00
Zebediah Figura
5900f00148
d3dcompiler: Create assignment instructions more directly in struct_var_initializer().
...
In particular so that we can remove the need for creating a load instruction,
which besides being unnecessary was also never added to any instruction lists.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 22:55:31 +02:00
Zebediah Figura
7fc0b9a6bd
d3dcompiler: Don't add a record deref to the instruction list twice.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 22:55:27 +02:00
Zebediah Figura
2449ff4b8f
d3dcompiler: Store some builtin types in the hlsl_ctx structure.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 22:55:18 +02:00
Zebediah Figura
09fcfe27ac
d3dcompiler: Rename HLSL_IR_DEREF to HLSL_IR_LOAD.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-01 22:10:28 +02:00
Zebediah Figura
323be6c515
d3dcompiler: Store derefs as an offset to a variable.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-01 22:10:28 +02:00
Zebediah Figura
d46065d1f3
d3dcompiler: Do not store matrix and vector indexes as deref instructions.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 21:32:46 +02:00
Zebediah Figura
0d9ddc4372
d3dcompiler: Synthesize a variable when indexing a non-deref node.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 21:32:43 +02:00
Zebediah Figura
749e6be4d6
d3dcompiler: Synthesize a variable when subscripting a non-deref node.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 21:32:41 +02:00
Zebediah Figura
2dc666c9df
d3dcompiler: Add a helper to initialize the hlsl_ir_node structure.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-01 22:03:16 +02:00
Zebediah Figura
d9db4beb3b
d3dcompiler: Set the x-dimension for struct types.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-30 21:01:11 +02:00
Zebediah Figura
c6c0601396
d3dcompiler: Set the dimensions for array types.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-30 21:01:09 +02:00
Zebediah Figura
aa333c63fc
d3dcompiler: Respect arrays in struct fields.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-30 21:01:07 +02:00
Zebediah Figura
867fe22346
d3dcompiler: Set the struct base type to HLSL_TYPE_VOID.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-30 21:01:05 +02:00
Zebediah Figura
4952bcfa4c
d3dcompiler: Fix matrix dimension declaration and access.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-30 21:01:02 +02:00
Zebediah Figura
53e6b328f6
d3dcompiler: Avoid using the lookahead token for location.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 11:46:31 +02:00
Zebediah Figura
2573e698ff
d3dcompiler: Make printed IR a bit more readable.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 11:46:28 +02:00
Zebediah Figura
9f75e917cb
d3dcompiler/tests: Add some tests for matrix majority.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 11:19:08 +02:00
Zebediah Figura
5f18f9f75a
d3dcompiler: Calculate the register size of types.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 11:18:23 +02:00
Zebediah Figura
f82b44748a
d3dcompiler: Always set the matrix majority for declaration types.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 11:18:20 +02:00