[PATCH 3/5] d3dcompiler: Do not store matrix and vector indexes as deref instructions.
Zebediah Figura
z.figura12 at gmail.com
Mon May 4 15:03:44 CDT 2020
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
dlls/d3dcompiler_43/hlsl.y | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/dlls/d3dcompiler_43/hlsl.y b/dlls/d3dcompiler_43/hlsl.y
index 5875705cf18..cc868757a26 100644
--- a/dlls/d3dcompiler_43/hlsl.y
+++ b/dlls/d3dcompiler_43/hlsl.y
@@ -619,13 +619,10 @@ static struct hlsl_ir_deref *new_array_deref(struct hlsl_ir_node *array,
{
data_type = expr_type->e.array.type;
}
- else if (expr_type->type == HLSL_CLASS_MATRIX)
+ else if (expr_type->type == HLSL_CLASS_MATRIX || expr_type->type == HLSL_CLASS_VECTOR)
{
- data_type = new_hlsl_type(NULL, HLSL_CLASS_VECTOR, expr_type->base_type, expr_type->dimx, 1);
- }
- else if (expr_type->type == HLSL_CLASS_VECTOR)
- {
- data_type = new_hlsl_type(NULL, HLSL_CLASS_SCALAR, expr_type->base_type, 1, 1);
+ FIXME("Index of matrix or vector type.\n");
+ return NULL;
}
else
{
@@ -2337,9 +2334,6 @@ postfix_expr: primary_expr
}
| postfix_expr '[' expr ']'
{
- /* This may be an array dereference or a vector/matrix
- * subcomponent access.
- * We store it as an array dereference in any case. */
struct hlsl_ir_deref *deref;
if (node_from_list($3)->data_type->type != HLSL_CLASS_SCALAR)
--
2.26.2
More information about the wine-devel
mailing list