summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2018-05-17 13:38:05 -0600
committerBrian Paul <[email protected]>2018-05-17 15:02:05 -0600
commit8fde9429c36b75d9e5afec4e221aff9b47db54f6 (patch)
tree61460be7472c7682e1687d3ed3236de0cd82f6d4
parentfcba3934fc138d6b9bfa911bd6c8f1155f577b58 (diff)
tgsi: fix incorrect tgsi_shader_info::num_tokens computation
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). Reviewed-by: Neha Bhende<[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index 18488d776e9..685a413c4e6 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 ) {