diff options
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_scan.c | 2 | ||||
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_scan.h | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c index 6210ebdb3ad..9d1f848a9a8 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c @@ -130,6 +130,7 @@ tgsi_scan_shader(const struct tgsi_token *tokens, /* check for indirect register reads */ if (src->Register.Indirect) { info->indirect_files |= (1 << src->Register.File); + info->indirect_files_read |= (1 << src->Register.File); } /* MSAA samplers */ @@ -150,6 +151,7 @@ tgsi_scan_shader(const struct tgsi_token *tokens, const struct tgsi_full_dst_register *dst = &fullinst->Dst[i]; if (dst->Register.Indirect) { info->indirect_files |= (1 << dst->Register.File); + info->indirect_files_written |= (1 << dst->Register.File); } } diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h index bacb4aba242..75540d5732b 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.h +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h @@ -94,6 +94,12 @@ struct tgsi_shader_info * indirect addressing. The bits are (1 << TGSI_FILE_x), etc. */ unsigned indirect_files; + /** + * Bitmask indicating which register files are read / written with + * indirect addressing. The bits are (1 << TGSI_FILE_x). + */ + unsigned indirect_files_read; + unsigned indirect_files_written; unsigned properties[TGSI_PROPERTY_COUNT]; /* index with TGSI_PROPERTY_ */ }; |