r600g: fix two issues in compressed msaa reading code
authorDave Airlie <airlied@redhat.com>
Thu, 11 Apr 2013 04:51:35 +0000 (05:51 +0100)
committerDave Airlie <airlied@redhat.com>
Thu, 11 Apr 2013 20:09:27 +0000 (21:09 +0100)
I've no idea when sample_chan would ever be 4 here, but 4 is most
definitely wrong, array textures have it as 3 as well.

Also the cayman code though unused is obviously wrong.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/r600_shader.c

index f80170722286f27431e77e20a1419d64d4b1b11e..6dbca505cbe772528f6d998070a344c1422f1b41 100644 (file)
@@ -4504,7 +4504,7 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
         * Then fetch the texel with src.
         */
        if (read_compressed_msaa) {
-               unsigned sample_chan = inst->Texture.Texture == TGSI_TEXTURE_2D_MSAA ? 3 : 4;
+               unsigned sample_chan = 3;
                unsigned temp = r600_get_temp(ctx);
                assert(src_loaded);
 
@@ -4535,7 +4535,7 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
                if (ctx->bc->chip_class == CAYMAN) {
                        for (i = 0 ; i < 4; i++) {
                                memset(&alu, 0, sizeof(struct r600_bytecode_alu));
-                               alu.op = ctx->inst_info->op;
+                               alu.op = ALU_OP2_MULLO_INT;
                                alu.src[0].sel = src_gpr;
                                alu.src[0].chan = sample_chan;
                                alu.src[1].sel = V_SQ_ALU_SRC_LITERAL;