[Mesa-dev] [PATCH 2/4] i965/fs: Add builder emit method taking a variable number of source registers.
Francisco Jerez
currojerez at riseup.net
Thu Jul 16 08:35:56 PDT 2015
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.
---
src/mesa/drivers/dri/i965/brw_fs_builder.h | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_builder.h b/src/mesa/drivers/dri/i965/brw_fs_builder.h
index ab4680f..1dba66f 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_builder.h
+++ b/src/mesa/drivers/dri/i965/brw_fs_builder.h
@@ -307,6 +307,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.
*/
instruction *
@@ -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);
--
2.4.3
More information about the mesa-dev
mailing list