i965: Add brw_WAIT to emit wait instruction

This will be used to implement the barrier function.

v2:
 * Rename to brw_WAIT (mattst88)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Jordan Justen 2014-11-04 18:05:04 -08:00
parent b925f1a1df
commit 0d250cc210
2 changed files with 23 additions and 0 deletions

View File

@ -390,6 +390,8 @@ brw_inst *brw_JMPI(struct brw_codegen *p, struct brw_reg index,
void brw_NOP(struct brw_codegen *p);
void brw_WAIT(struct brw_codegen *p);
/* Special case: there is never a destination, execution size will be
* taken from src0:
*/

View File

@ -3406,3 +3406,24 @@ void brw_shader_time_add(struct brw_codegen *p,
brw_pop_insn_state(p);
}
/**
* Emit the wait instruction for a barrier
*/
void
brw_WAIT(struct brw_codegen *p)
{
const struct brw_device_info *devinfo = p->devinfo;
struct brw_inst *insn;
struct brw_reg src = brw_notification_reg();
insn = next_insn(p, BRW_OPCODE_WAIT);
brw_set_dest(p, insn, src);
brw_set_src0(p, insn, src);
brw_set_src1(p, insn, brw_null_reg());
brw_inst_set_exec_size(devinfo, insn, BRW_EXECUTE_1);
brw_inst_set_mask_control(devinfo, insn, BRW_MASK_DISABLE);
}