r600g: fix segfault if texture operand is a literal
authorChristian König <deathsimple@vodafone.de>
Wed, 19 Jan 2011 22:46:27 +0000 (23:46 +0100)
committerChristian König <deathsimple@vodafone.de>
Wed, 19 Jan 2011 22:48:02 +0000 (23:48 +0100)
This fixes Bug 33262

src/gallium/drivers/r600/r600_shader.c

index 5c5ff4e7394578a7689d3fd6cfd214a744ef817c..df97c32bc7416be00d29ab9a8f887412dd4ec8f7 100644 (file)
@@ -1838,7 +1838,9 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
                for (i = 0; i < 4; i++) {
                        memset(&alu, 0, sizeof(struct r600_bc_alu));
                        alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV);
-                       alu.src[0].sel = src_gpr;
+                       r = tgsi_src(ctx, &inst->Src[0], &alu.src[0]);
+                       if (r)
+                               return r;
                        alu.src[0].chan = tgsi_chan(&inst->Src[0], i);
                        alu.dst.sel = ctx->temp_reg;
                        alu.dst.chan = i;