mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 01:30:08 +01:00
i965: Implement work-around for CMP with null dest on Haswell.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
1a59cc777f
commit
60e4c99488
1 changed files with 12 additions and 0 deletions
|
|
@ -1653,6 +1653,7 @@ void brw_CMP(struct brw_compile *p,
|
|||
struct brw_reg src0,
|
||||
struct brw_reg src1)
|
||||
{
|
||||
struct intel_context *intel = &p->brw->intel;
|
||||
struct brw_instruction *insn = next_insn(p, BRW_OPCODE_CMP);
|
||||
|
||||
insn->header.destreg__conditionalmod = conditional;
|
||||
|
|
@ -1672,6 +1673,17 @@ void brw_CMP(struct brw_compile *p,
|
|||
p->current->header.predicate_control = BRW_PREDICATE_NORMAL;
|
||||
p->flag_value = 0xff;
|
||||
}
|
||||
|
||||
/* Item WaCMPInstNullDstForcesThreadSwitch in the Haswell Bspec workarounds
|
||||
* page says:
|
||||
* "Any CMP instruction with a null destination must use a {switch}."
|
||||
*/
|
||||
if (intel->is_haswell) {
|
||||
if (dest.file == BRW_ARCHITECTURE_REGISTER_FILE &&
|
||||
dest.nr == BRW_ARF_NULL) {
|
||||
insn->header.thread_control = BRW_THREAD_SWITCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Issue 'wait' instruction for n1, host could program MMIO
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue