From 816bb30245b9e4be78cc24228ada450a425b948d Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 30 Nov 2015 10:07:44 +1000 Subject: 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 --- src/gallium/drivers/r600/r600_asm.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/gallium/drivers/r600/r600_asm.h') 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, -- cgit v1.2.3