#include "r600_pipe.h"
#include "r600_isa.h"
+#include "tgsi/tgsi_exec.h"
struct r600_bytecode_alu_src {
unsigned sel;
struct r600_bytecode_gds {
struct list_head list;
unsigned op;
- unsigned gds_op;
unsigned src_gpr;
unsigned src_rel;
unsigned src_sel_x;
unsigned dst_sel_y;
unsigned dst_sel_z;
unsigned dst_sel_w;
+ unsigned uav_index_mode;
+ unsigned uav_id;
+ unsigned alloc_consume;
+ unsigned bcast_first_req;
};
struct r600_bytecode_output {
unsigned index_gpr;
};
+struct r600_bytecode_rat {
+ unsigned id;
+ unsigned inst;
+ unsigned index_mode;
+};
+
struct r600_bytecode_kcache {
unsigned bank;
unsigned mode;
unsigned eg_alu_extended;
unsigned barrier;
unsigned end_of_program;
+ unsigned mark;
+ unsigned vpm;
struct list_head alu;
struct list_head tex;
struct list_head vtx;
struct list_head gds;
struct r600_bytecode_output output;
+ struct r600_bytecode_rat rat;
struct r600_bytecode_alu *curr_bs_head;
struct r600_bytecode_alu *prev_bs_head;
struct r600_bytecode_alu *prev2_bs_head;
unsigned force_add_cf;
uint32_t *bytecode;
uint32_t fc_sp;
- struct r600_cf_stack_entry fc_stack[32];
+ struct r600_cf_stack_entry fc_stack[TGSI_EXEC_MAX_NESTING];
struct r600_stack_info stack;
unsigned ar_loaded;
unsigned ar_reg;
const struct r600_bytecode_alu *alu);
int r600_bytecode_add_vtx(struct r600_bytecode *bc,
const struct r600_bytecode_vtx *vtx);
+int r600_bytecode_add_vtx_tc(struct r600_bytecode *bc,
+ const struct r600_bytecode_vtx *vtx);
int r600_bytecode_add_tex(struct r600_bytecode *bc,
const struct r600_bytecode_tex *tex);
int r600_bytecode_add_gds(struct r600_bytecode *bc,