summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_asm.h
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2015-11-30 10:07:44 +1000
committerDave Airlie <[email protected]>2015-12-07 09:58:59 +1000
commit816bb30245b9e4be78cc24228ada450a425b948d (patch)
tree40bd41ed2611504a462850e30141e74c7cf7520c /src/gallium/drivers/r600/r600_asm.h
parentfe4eb49df9ee93d9fe97d16149f682a6ebe79d42 (diff)
r600: add support for LDS instruction encoding.
These are used in tessellation shaders to read/write values between VS/TCS/TES. This splits the eg alu assembler out to handle these instructions. Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_asm.h')
-rw-r--r--src/gallium/drivers/r600/r600_asm.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_asm.h b/src/gallium/drivers/r600/r600_asm.h
index f786bab3d59..0b78290295a 100644
--- a/src/gallium/drivers/r600/r600_asm.h
+++ b/src/gallium/drivers/r600/r600_asm.h
@@ -52,6 +52,7 @@ struct r600_bytecode_alu {
unsigned op;
unsigned last;
unsigned is_op3;
+ unsigned is_lds_idx_op;
unsigned execute_mask;
unsigned update_pred;
unsigned pred_sel;
@@ -59,6 +60,7 @@ struct r600_bytecode_alu {
unsigned bank_swizzle_force;
unsigned omod;
unsigned index_mode;
+ unsigned lds_idx;
};
struct r600_bytecode_tex {
@@ -253,6 +255,8 @@ struct r600_bytecode {
int eg_bytecode_cf_build(struct r600_bytecode *bc, struct r600_bytecode_cf *cf);
int egcm_load_index_reg(struct r600_bytecode *bc, unsigned id, bool inside_alu_clause);
int eg_bytecode_gds_build(struct r600_bytecode *bc, struct r600_bytecode_gds *gds, unsigned id);
+int eg_bytecode_alu_build(struct r600_bytecode *bc,
+ struct r600_bytecode_alu *alu, unsigned id);
/* r600_asm.c */
void r600_bytecode_init(struct r600_bytecode *bc,
enum chip_class chip_class,