Mesa (master): tgsi/scan: get information about indirect 2D file access

Marek Olšák mareko at kemper.freedesktop.org
Mon Oct 24 19:42:03 UTC 2016


Module: Mesa
Branch: master
Commit: f095a4eb171aadf525198e6583a1796ffe5a07b7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f095a4eb171aadf525198e6583a1796ffe5a07b7

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu Oct 20 00:57:07 2016 +0200

tgsi/scan: get information about indirect 2D file access

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/gallium/auxiliary/tgsi/tgsi_scan.c | 6 ++++++
 src/gallium/auxiliary/tgsi/tgsi_scan.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index 0c81005..e5edea8 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
@@ -285,6 +285,9 @@ scan_instruction(struct tgsi_shader_info *info,
          }
       }
 
+      if (src->Register.Dimension && src->Dimension.Indirect)
+         info->dim_indirect_files |= 1u << src->Register.File;
+
       /* Texture samplers */
       if (src->Register.File == TGSI_FILE_SAMPLER) {
          const unsigned index = src->Register.Index;
@@ -338,6 +341,9 @@ scan_instruction(struct tgsi_shader_info *info,
          info->indirect_files_written |= (1 << dst->Register.File);
       }
 
+      if (dst->Register.Dimension && dst->Dimension.Indirect)
+         info->dim_indirect_files |= 1u << dst->Register.File;
+
       if (is_memory_file(dst->Register.File)) {
          assert(fullinst->Instruction.Opcode == TGSI_OPCODE_STORE);
 
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h
index 2e61dc7..47528d5 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h
@@ -142,6 +142,7 @@ struct tgsi_shader_info
     */
    unsigned indirect_files_read;
    unsigned indirect_files_written;
+   unsigned dim_indirect_files; /**< shader resource indexing */
    unsigned const_buffers_indirect; /**< const buffers using indirect addressing */
 
    unsigned properties[TGSI_PROPERTY_COUNT]; /* index with TGSI_PROPERTY_ */




More information about the mesa-commit mailing list