|
|
|
@@ -1280,6 +1280,10 @@ ttn_tex(struct ttn_compile *c, nir_alu_dest dest, nir_ssa_def **src) |
|
|
|
num_srcs = 3; |
|
|
|
samp = 3; |
|
|
|
break; |
|
|
|
case TGSI_OPCODE_LODQ: |
|
|
|
op = nir_texop_lod; |
|
|
|
num_srcs = 1; |
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
fprintf(stderr, "unknown TGSI tex op %d\n", tgsi_inst->Instruction.Opcode); |
|
|
|
@@ -1332,7 +1336,9 @@ ttn_tex(struct ttn_compile *c, nir_alu_dest dest, nir_ssa_def **src) |
|
|
|
*/ |
|
|
|
sview = instr->sampler_index; |
|
|
|
|
|
|
|
if (sview < c->num_samp_types) { |
|
|
|
if (op == nir_texop_lod) { |
|
|
|
instr->dest_type = nir_type_float; |
|
|
|
} else if (sview < c->num_samp_types) { |
|
|
|
instr->dest_type = c->samp_types[sview]; |
|
|
|
} else { |
|
|
|
instr->dest_type = nir_type_float; |
|
|
|
@@ -1648,7 +1654,7 @@ static const nir_op op_trans[TGSI_OPCODE_LAST] = { |
|
|
|
[TGSI_OPCODE_UMUL_HI] = nir_op_umul_high, |
|
|
|
|
|
|
|
[TGSI_OPCODE_TG4] = 0, |
|
|
|
[TGSI_OPCODE_LODQ] = 0, /* XXX */ |
|
|
|
[TGSI_OPCODE_LODQ] = 0, |
|
|
|
|
|
|
|
[TGSI_OPCODE_IBFE] = nir_op_ibitfield_extract, |
|
|
|
[TGSI_OPCODE_UBFE] = nir_op_ubitfield_extract, |
|
|
|
@@ -1816,6 +1822,7 @@ ttn_emit_instruction(struct ttn_compile *c) |
|
|
|
case TGSI_OPCODE_TXQ_LZ: |
|
|
|
case TGSI_OPCODE_TXF: |
|
|
|
case TGSI_OPCODE_TG4: |
|
|
|
case TGSI_OPCODE_LODQ: |
|
|
|
ttn_tex(c, dest, src); |
|
|
|
break; |
|
|
|
|