Mesa (master): glsl_to_tgsi: allocate glsl_to_tgsi_instruction:: tex_offsets on demand

Marek Olšák mareko at kemper.freedesktop.org
Wed Oct 19 17:51:00 UTC 2016


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sun Oct 16 22:08:03 2016 +0200

glsl_to_tgsi: allocate glsl_to_tgsi_instruction::tex_offsets on demand

sizeof(glsl_to_tgsi_instruction): 384 -> 264

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 523b533..812a7a0 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -273,7 +273,7 @@ public:
    st_dst_reg dst[2];
    st_src_reg src[4];
    st_src_reg resource; /**< sampler or buffer register */
-   st_src_reg tex_offsets[MAX_GLSL_TEXTURE_OFFSET];
+   st_src_reg *tex_offsets;
 
    /** Pointer to the ir source this tree came from for debugging */
    ir_instruction *ir;
@@ -4309,6 +4309,9 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
    }
 
    if (ir->offset) {
+      if (!inst->tex_offsets)
+         inst->tex_offsets = rzalloc_array(inst, st_src_reg, MAX_GLSL_TEXTURE_OFFSET);
+
       for (i = 0; i < MAX_GLSL_TEXTURE_OFFSET && offset[i].file != PROGRAM_UNDEFINED; i++)
          inst->tex_offsets[i] = offset[i];
       inst->tex_offset_num_offset = i;




More information about the mesa-commit mailing list