[PATCH 3/5] d3dcompiler: Do not store matrix and vector indexes as deref instructions.

Matteo Bruni matteo.mystral at gmail.com
Tue May 19 14:32:24 CDT 2020


On Mon, May 4, 2020 at 10:04 PM Zebediah Figura <z.figura12 at gmail.com> wrote:
>
> 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. */

Technically the first half of the comment still applies. Not sure it's
worth a comment but it didn't seem too obnoxious.



More information about the wine-devel mailing list