aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_asm.h
diff options
context:
space:
mode:
authorGlenn Kennard <[email protected]>2017-03-05 18:26:49 +0100
committerDave Airlie <[email protected]>2018-02-09 09:52:48 +1000
commit9c48a139b08f223f4ac6e218d19b356bf4a41463 (patch)
treee4304278ae6576589490eb03a9112d5e9de293e0 /src/gallium/drivers/r600/r600_asm.h
parent2a891ed19065dac89e8639800d3c63274d19a97a (diff)
r600g: Support emitting scratch ops
Signed-off-by: Glenn Kennard <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_asm.h')
-rw-r--r--src/gallium/drivers/r600/r600_asm.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_asm.h b/src/gallium/drivers/r600/r600_asm.h
index d7cb64f0b7d..b8abdf014d7 100644
--- a/src/gallium/drivers/r600/r600_asm.h
+++ b/src/gallium/drivers/r600/r600_asm.h
@@ -116,6 +116,17 @@ struct r600_bytecode_vtx {
unsigned offset;
unsigned endian;
unsigned buffer_index_mode;
+
+ // READ_SCRATCH fields
+ unsigned uncached;
+ unsigned indexed;
+ unsigned src_sel_y;
+ unsigned src_rel;
+ unsigned elem_size;
+ unsigned array_size;
+ unsigned array_base;
+ unsigned burst_count;
+ unsigned dst_rel;
};
struct r600_bytecode_gds {
@@ -155,6 +166,7 @@ struct r600_bytecode_output {
unsigned swizzle_w;
unsigned burst_count;
unsigned index_gpr;
+ unsigned mark; /* used by MEM_SCRATCH */
};
struct r600_bytecode_rat {
@@ -313,6 +325,9 @@ int r700_bytecode_alu_build(struct r600_bytecode *bc,
struct r600_bytecode_alu *alu, unsigned id);
void r700_bytecode_alu_read(struct r600_bytecode *bc,
struct r600_bytecode_alu *alu, uint32_t word0, uint32_t word1);
+int r700_bytecode_fetch_mem_build(struct r600_bytecode *bc,
+ struct r600_bytecode_vtx *mem, unsigned id);
+
void r600_bytecode_export_read(struct r600_bytecode *bc,
struct r600_bytecode_output *output, uint32_t word0, uint32_t word1);
void eg_bytecode_export_read(struct r600_bytecode *bc,