diff options
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c | 5 | ||||
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 3 | ||||
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_exec.c | 2 | ||||
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_info.c | 2 | ||||
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h | 2 |
5 files changed, 5 insertions, 9 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c index cb6564ad079..3a19fe2a64f 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c @@ -241,13 +241,10 @@ analyse_sample(struct analysis_context *ctx, tex_info->sampler_unit = inst->Src[2].Register.Index; if (modifier == LP_BLD_TEX_MODIFIER_EXPLICIT_DERIV || + modifier == LP_BLD_TEX_MODIFIER_EXPLICIT_LOD || modifier == LP_BLD_TEX_MODIFIER_LOD_BIAS || shadow) { /* We don't track insts with additional regs, although we could */ indirect = TRUE; - } else { - if (modifier == LP_BLD_TEX_MODIFIER_EXPLICIT_LOD) { - readmask |= TGSI_WRITEMASK_W; - } } for (chan = 0; chan < 4; ++chan) { diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c index 52a60dd43b6..808e8168824 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c @@ -1428,9 +1428,8 @@ emit_sample(struct lp_build_tgsi_soa_context *bld, explicit_lod = NULL; } else if (modifier == LP_BLD_TEX_MODIFIER_EXPLICIT_LOD) { - /* lod bias comes from src 3.r but explicit lod from 0.a */ lod_bias = NULL; - explicit_lod = lp_build_emit_fetch( &bld->bld_base, inst, 0, 3 ); + explicit_lod = lp_build_emit_fetch( &bld->bld_base, inst, 3, 0 ); } else if (modifier == LP_BLD_TEX_MODIFIER_LOD_ZERO) { lod_bias = NULL; diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c index 6da7d42455c..03f19420986 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c @@ -2154,7 +2154,7 @@ exec_sample(struct tgsi_exec_machine *mach, control = tgsi_sampler_lod_bias; } else if (modifier == TEX_MODIFIER_EXPLICIT_LOD) { - FETCH(&c1, 0, TGSI_CHAN_W); + FETCH(&c1, 3, TGSI_CHAN_X); lod = &c1; control = tgsi_sampler_lod_explicit; } diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c b/src/gallium/auxiliary/tgsi/tgsi_info.c index f8a3cb665f9..f289ebcda5a 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_info.c +++ b/src/gallium/auxiliary/tgsi/tgsi_info.c @@ -190,7 +190,7 @@ static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] = { 1, 4, 0, 0, 0, 0, OTHR, "SAMPLE_C", TGSI_OPCODE_SAMPLE_C }, { 1, 4, 0, 0, 0, 0, OTHR, "SAMPLE_C_LZ", TGSI_OPCODE_SAMPLE_C_LZ }, { 1, 5, 0, 0, 0, 0, OTHR, "SAMPLE_D", TGSI_OPCODE_SAMPLE_D }, - { 1, 3, 0, 0, 0, 0, OTHR, "SAMPLE_L", TGSI_OPCODE_SAMPLE_L }, + { 1, 4, 0, 0, 0, 0, OTHR, "SAMPLE_L", TGSI_OPCODE_SAMPLE_L }, { 1, 3, 0, 0, 0, 0, OTHR, "GATHER4", TGSI_OPCODE_GATHER4 }, { 1, 2, 0, 0, 0, 0, OTHR, "SVIEWINFO", TGSI_OPCODE_SVIEWINFO }, { 1, 2, 0, 0, 0, 0, OTHR, "SAMPLE_POS", TGSI_OPCODE_SAMPLE_POS }, diff --git a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h index 75e27a666f1..4a1b811b30b 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h +++ b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h @@ -176,7 +176,7 @@ OP14(SAMPLE_B) OP14(SAMPLE_C) OP14(SAMPLE_C_LZ) OP15(SAMPLE_D) -OP13(SAMPLE_L) +OP14(SAMPLE_L) OP13(GATHER4) OP12(SVIEWINFO) OP13(SAMPLE_POS) |