diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu_emit.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c index 06baebf606b..6b2117d2600 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c @@ -1267,7 +1267,7 @@ brw_IF(struct brw_compile *p, unsigned execute_size) insn->header.compression_control = BRW_COMPRESSION_NONE; insn->header.predicate_control = BRW_PREDICATE_NORMAL; insn->header.mask_control = BRW_MASK_ENABLE; - if (!p->single_program_flow) + if (!p->single_program_flow && brw->gen < 6) insn->header.thread_control = BRW_THREAD_SWITCH; push_if_stack(p, insn); @@ -1300,9 +1300,6 @@ gen6_IF(struct brw_compile *p, uint32_t conditional, assert(insn->header.predicate_control == BRW_PREDICATE_NONE); insn->header.destreg__conditionalmod = conditional; - if (!p->single_program_flow) - insn->header.thread_control = BRW_THREAD_SWITCH; - push_if_stack(p, insn); return insn; } @@ -1464,7 +1461,7 @@ brw_ELSE(struct brw_compile *p) insn->header.compression_control = BRW_COMPRESSION_NONE; insn->header.mask_control = BRW_MASK_ENABLE; - if (!p->single_program_flow) + if (!p->single_program_flow && brw->gen < 6) insn->header.thread_control = BRW_THREAD_SWITCH; push_if_stack(p, insn); @@ -1534,7 +1531,8 @@ brw_ENDIF(struct brw_compile *p) insn->header.compression_control = BRW_COMPRESSION_NONE; insn->header.mask_control = BRW_MASK_ENABLE; - insn->header.thread_control = BRW_THREAD_SWITCH; + if (brw->gen < 6) + insn->header.thread_control = BRW_THREAD_SWITCH; /* Also pop item off the stack in the endif instruction: */ if (brw->gen < 6) { |