Oh yes, that looks quite wrong.
Reviewed-by: Roland Scheidegger <[email protected]>
Am 17.05.2018 um 22:06 schrieb Brian Paul:
> We were incrementing num_tokens in each loop iteration while parsing
> the shader. But each call to tgsi_parse_token() can consume more than
> one token (and often does). Instead, just call the tgsi_num_tokens()
> function.
>
> Luckily, this issue doesn't seem to effect any current users of this
> field (llvmpipe just checks for <= 1, for example).
> ---
> src/gallium/auxiliary/tgsi/tgsi_scan.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c
> b/src/gallium/auxiliary/tgsi/tgsi_scan.c
> index 18488d7..685a413 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
> @@ -836,13 +836,12 @@ tgsi_scan_shader(const struct tgsi_token *tokens,
> procType == PIPE_SHADER_TESS_EVAL ||
> procType == PIPE_SHADER_COMPUTE);
> info->processor = procType;
> + info->num_tokens = tgsi_num_tokens(parse.Tokens);
>
> /**
> ** Loop over incoming program tokens/instructions
> */
> while (!tgsi_parse_end_of_tokens(&parse)) {
> - info->num_tokens++;
> -
> tgsi_parse_token( &parse );
>
> switch( parse.FullToken.Token.Type ) {
>
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev