ttn: add TEX2 support
This fixes CubeArrayShadow tests (where the shadow comes in via a second arg to the TEX2 instruction). Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Rob Clark <robdclark@gmail.com> Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
c1babbd85c
commit
4fd24caf92
|
@ -1239,6 +1239,11 @@ ttn_tex(struct ttn_compile *c, nir_alu_dest dest, nir_ssa_def **src)
|
|||
op = nir_texop_tex;
|
||||
num_srcs = 1;
|
||||
break;
|
||||
case TGSI_OPCODE_TEX2:
|
||||
op = nir_texop_tex;
|
||||
num_srcs = 1;
|
||||
samp = 2;
|
||||
break;
|
||||
case TGSI_OPCODE_TXP:
|
||||
op = nir_texop_tex;
|
||||
num_srcs = 2;
|
||||
|
@ -1394,10 +1399,12 @@ ttn_tex(struct ttn_compile *c, nir_alu_dest dest, nir_ssa_def **src)
|
|||
}
|
||||
|
||||
if (instr->is_shadow) {
|
||||
if (instr->coord_components < 3)
|
||||
instr->src[src_number].src = nir_src_for_ssa(ttn_channel(b, src[0], Z));
|
||||
else
|
||||
if (instr->coord_components == 4)
|
||||
instr->src[src_number].src = nir_src_for_ssa(ttn_channel(b, src[1], X));
|
||||
else if (instr->coord_components == 3)
|
||||
instr->src[src_number].src = nir_src_for_ssa(ttn_channel(b, src[0], W));
|
||||
else
|
||||
instr->src[src_number].src = nir_src_for_ssa(ttn_channel(b, src[0], Z));
|
||||
|
||||
instr->src[src_number].src_type = nir_tex_src_comparitor;
|
||||
src_number++;
|
||||
|
@ -1803,6 +1810,7 @@ ttn_emit_instruction(struct ttn_compile *c)
|
|||
case TGSI_OPCODE_TXL:
|
||||
case TGSI_OPCODE_TXB:
|
||||
case TGSI_OPCODE_TXD:
|
||||
case TGSI_OPCODE_TEX2:
|
||||
case TGSI_OPCODE_TXL2:
|
||||
case TGSI_OPCODE_TXB2:
|
||||
case TGSI_OPCODE_TXQ_LZ:
|
||||
|
|
Loading…
Reference in New Issue