From: Marek Olšák <marek.ol...@amd.com> sizeof(glsl_to_tgsi_instruction): 384 -> 264 --- 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 b7280e3..2ae15c9 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -266,21 +266,21 @@ st_dst_reg::st_dst_reg(st_src_reg reg) this->array_id = reg.array_id; } class glsl_to_tgsi_instruction : public exec_node { public: DECLARE_RALLOC_CXX_OPERATORS(glsl_to_tgsi_instruction) 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; unsigned op:8; /**< TGSI opcode */ unsigned saturate:1; unsigned is_64bit_expanded:1; unsigned sampler_base:5; unsigned sampler_array_size:6; /**< 1-based size of sampler array, 1 if not array */ unsigned tex_target:4; /**< One of TEXTURE_*_INDEX */ @@ -4269,20 +4269,23 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir) inst->resource.index = sampler_index; inst->sampler_array_size = sampler_array_size; inst->sampler_base = sampler_base; if (reladdr.file != PROGRAM_UNDEFINED) { inst->resource.reladdr = ralloc(mem_ctx, st_src_reg); memcpy(inst->resource.reladdr, &reladdr, sizeof(reladdr)); } 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; } switch (sampler_type->sampler_dimensionality) { case GLSL_SAMPLER_DIM_1D: inst->tex_target = (sampler_type->sampler_array) ? TEXTURE_1D_ARRAY_INDEX : TEXTURE_1D_INDEX; break; -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev