i965/fs: Treat the FB_WRITE as predicated if we're discarding.
Pre-Haswell hardware couldn't actually predicate it, but it's easier to pretend as if it's predicated in the visitor since it will generate a MOV from f0.1. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
f1e5418f40
commit
e4d0299089
|
@ -163,6 +163,10 @@ fs_generator::generate_fb_write(fs_inst *inst, struct brw_reg payload)
|
|||
const brw_wm_prog_key * const key = (brw_wm_prog_key * const) this->key;
|
||||
struct brw_reg implied_header;
|
||||
|
||||
if (brw->gen < 8 && !brw->is_haswell) {
|
||||
brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
|
||||
}
|
||||
|
||||
if (inst->base_mrf >= 0)
|
||||
payload = brw_message_reg(inst->base_mrf);
|
||||
|
||||
|
|
|
@ -3334,7 +3334,7 @@ fs_visitor::emit_single_fb_write(fs_reg color0, fs_reg color1,
|
|||
|
||||
write->mlen = load->regs_written;
|
||||
write->header_present = header_present;
|
||||
if ((brw->gen >= 8 || brw->is_haswell) && prog_data->uses_kill) {
|
||||
if (prog_data->uses_kill) {
|
||||
write->predicate = BRW_PREDICATE_NORMAL;
|
||||
write->flag_subreg = 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue