i965/vec4: Stop pretending to support indirect output stores
Since we're using nir_lower_outputs_to_temporaries to shadow all our outputs, it's impossible to actually get an indirect store. The code we had to "handle" this was pretty bogus as it created a register with a reladdr and then stuffed it in a fixed varying slot without so much as a MOV. Not only does this not do the MOV, it also puts the indirect on the wrong side of the transaction. Let's just delete the broken dead code. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
aa35b0c2c7
commit
b715e6d528
|
@ -393,21 +393,15 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr)
|
|||
}
|
||||
|
||||
case nir_intrinsic_store_output_indirect:
|
||||
has_indirect = true;
|
||||
/* fallthrough */
|
||||
unreachable("nir_lower_outputs_to_temporaries should prevent this");
|
||||
|
||||
case nir_intrinsic_store_output: {
|
||||
int varying = instr->const_index[0];
|
||||
|
||||
src = get_nir_src(instr->src[0], BRW_REGISTER_TYPE_F,
|
||||
instr->num_components);
|
||||
dest = dst_reg(src);
|
||||
|
||||
if (has_indirect) {
|
||||
dest.reladdr = new(mem_ctx) src_reg(get_nir_src(instr->src[1],
|
||||
BRW_REGISTER_TYPE_D,
|
||||
1));
|
||||
}
|
||||
output_reg[varying] = dest;
|
||||
output_reg[varying] = dst_reg(src);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue