[Mesa-dev] [PATCH] tgsi: fix incorrect tgsi_shader_info::num_tokens computation
Roland Scheidegger
sroland at vmware.com
Thu May 17 20:59:47 UTC 2018
Oh yes, that looks quite wrong.
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
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 ) {
>
More information about the mesa-dev
mailing list