freedreno/ir3: add TXL support
authorIlia Mirkin <imirkin@alum.mit.edu>
Wed, 10 Sep 2014 04:59:30 +0000 (00:59 -0400)
committerRob Clark <robclark@freedesktop.org>
Fri, 12 Sep 2014 20:26:11 +0000 (16:26 -0400)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/ir3/ir3_compiler.c

index 640e6b92a2b32f3a8e27c7bd63ea3118a8eceee3..5cae5c736f6df1a384751785914105118ce109ae 100644 (file)
@@ -1145,6 +1145,7 @@ get_tex_info(struct ir3_compile_context *ctx,
        switch (inst->Instruction.Opcode) {
        case TGSI_OPCODE_TEX:
        case TGSI_OPCODE_TXB:
+       case TGSI_OPCODE_TXL:
                switch (tex) {
                case TGSI_TEXTURE_1D:
                        return &tex1d;
@@ -1289,7 +1290,7 @@ trans_samp(const struct instr_translater *t,
        add_dst_reg_wrmask(ctx, instr, dst, 0, dst->WriteMask);
        add_src_reg_wrmask(ctx, instr, coord, coord->SwizzleX, tinf->src_wrmask);
 
-       if (t->tgsi_opc == TGSI_OPCODE_TXB)
+       if (t->opc != OPC_SAM)
                add_src_reg_wrmask(ctx, instr, coord, coord->SwizzleW, 0x1);
 }
 
@@ -2093,6 +2094,7 @@ static const struct instr_translater translaters[TGSI_OPCODE_LAST] = {
        INSTR(TEX,          trans_samp, .opc = OPC_SAM, .arg = TGSI_OPCODE_TEX),
        INSTR(TXP,          trans_samp, .opc = OPC_SAM, .arg = TGSI_OPCODE_TXP),
        INSTR(TXB,          trans_samp, .opc = OPC_SAMB, .arg = TGSI_OPCODE_TXB),
+       INSTR(TXL,          trans_samp, .opc = OPC_SAML, .arg = TGSI_OPCODE_TXL),
        INSTR(DDX,          trans_deriv, .opc = OPC_DSX),
        INSTR(DDY,          trans_deriv, .opc = OPC_DSY),
        INSTR(SGT,          trans_cmp),