Mesa (master): gallium/tgsi_exec: Stop doing the weird allocation of the Addrs array.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jan 5 10:22:50 UTC 2021


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Dec 22 13:37:54 2020 -0800

gallium/tgsi_exec: Stop doing the weird allocation of the Addrs array.

Saves an indirection on referencing the address regs, and also my sanity.

Reviewed-by: Adam Jackson <ajax at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8283>

---

 src/gallium/auxiliary/tgsi/tgsi_exec.c | 4 ++--
 src/gallium/auxiliary/tgsi/tgsi_exec.h | 7 ++-----
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index 1db19914451..0eea711e9be 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -1264,7 +1264,6 @@ tgsi_exec_machine_create(enum pipe_shader_type shader_type)
    memset(mach, 0, sizeof(*mach));
 
    mach->ShaderType = shader_type;
-   mach->Addrs = &mach->Temps[TGSI_EXEC_TEMP_ADDR];
    mach->MaxGeometryShaderOutputs = TGSI_MAX_TOTAL_VERTICES;
 
    if (shader_type != PIPE_SHADER_COMPUTE) {
@@ -1528,7 +1527,7 @@ fetch_src_file_channel(const struct tgsi_exec_machine *mach,
 
    case TGSI_FILE_ADDRESS:
       for (i = 0; i < TGSI_QUAD_SIZE; i++) {
-         assert(index->i[i] >= 0);
+         assert(index->i[i] >= 0 && index->i[i] < ARRAY_SIZE(mach->Addrs));
          assert(index2D->i[i] == 0);
 
          chan->u[i] = mach->Addrs[index->i[i]].xyzw[swizzle].u[i];
@@ -1893,6 +1892,7 @@ store_dest_dstret(struct tgsi_exec_machine *mach,
 
    case TGSI_FILE_ADDRESS:
       index = reg->Register.Index;
+      assert(index >= 0 && index < ARRAY_SIZE(mach->Addrs));
       dst = &mach->Addrs[index].xyzw[chan_index];
       break;
 
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.h b/src/gallium/auxiliary/tgsi/tgsi_exec.h
index 16f44c3736f..e3d190939b5 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.h
@@ -224,10 +224,7 @@ struct tgsi_sampler
 #define TGSI_EXEC_TEMP_R0           (TGSI_EXEC_NUM_TEMPS + 1)
 #define TGSI_EXEC_NUM_TEMP_R        4
 
-#define TGSI_EXEC_TEMP_ADDR         (TGSI_EXEC_NUM_TEMPS + 5)
-#define TGSI_EXEC_NUM_ADDRS         3
-
-#define TGSI_EXEC_NUM_TEMP_EXTRAS   8
+#define TGSI_EXEC_NUM_TEMP_EXTRAS   5
 
 
 
@@ -321,7 +318,7 @@ struct tgsi_exec_machine
    unsigned                      SysSemanticToIndex[TGSI_SEMANTIC_COUNT];
    struct tgsi_exec_vector       SystemValue[TGSI_MAX_MISC_INPUTS];
 
-   struct tgsi_exec_vector       *Addrs;
+   struct tgsi_exec_vector       Addrs[3];
 
    struct tgsi_sampler           *Sampler;
 



More information about the mesa-commit mailing list