mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
i965/fs: Add builder emit method taking a variable number of source registers.
And start using it in fs_builder::LOAD_PAYLOAD(). This will be used to emit logical send message opcodes which have an unusually large number of arguments. Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
1dd3543ac1
commit
5a5607a16c
1 changed files with 12 additions and 3 deletions
|
|
@ -306,6 +306,17 @@ namespace brw {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create and insert an instruction with a variable number of sources
|
||||
* into the program.
|
||||
*/
|
||||
instruction *
|
||||
emit(enum opcode opcode, const dst_reg &dst, const src_reg srcs[],
|
||||
unsigned n) const
|
||||
{
|
||||
return emit(instruction(opcode, dispatch_width(), dst, srcs, n));
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert a preallocated instruction into the program.
|
||||
*/
|
||||
|
|
@ -518,9 +529,7 @@ namespace brw {
|
|||
LOAD_PAYLOAD(const dst_reg &dst, const src_reg *src,
|
||||
unsigned sources, unsigned header_size) const
|
||||
{
|
||||
instruction *inst = emit(instruction(SHADER_OPCODE_LOAD_PAYLOAD,
|
||||
dispatch_width(), dst,
|
||||
src, sources));
|
||||
instruction *inst = emit(SHADER_OPCODE_LOAD_PAYLOAD, dst, src, sources);
|
||||
inst->header_size = header_size;
|
||||
inst->regs_written = header_size +
|
||||
(sources - header_size) * (dispatch_width() / 8);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue