diff options
author | Eric Anholt <[email protected]> | 2014-06-26 23:07:39 +0100 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2014-08-08 18:59:46 -0700 |
commit | 792d1c92df6f58f219eb8b77e668424cdcc9c9af (patch) | |
tree | eff4d2ea2c8050a14118274dcb19714c609392ab /src/gallium/drivers/vc4/vc4_qpu.h | |
parent | e59890aebbad990a02c2c27531525804de47115d (diff) |
vc4: Switch to actually generating vertex and fragment shader code from TGSI.
This introduces an IR (QIR, for QPU IR) to do optimization on. It's a
scalar, SSA IR in general. It looks like optimization is pretty easy this
way, though I haven't figured out if it's going to be good for our weird
register allocation or not (or if I want to reduce to basically QPU
instructions first), and I've got some problems with it having some
multi-QPU-instruction opcodes (SEQ and CMP, for example) which I probably
want to break down.
Of course, this commit mostly doesn't work, since many other things are
still hardwired, like the VBO data.
v2: Rewrite to use a bunch of helpers (qir_OPCODE) for emitting QIR
instructions into temporary values, and make qir_inst4 take the 4 args
separately instead of an array (all later callers wanted individual
args).
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_qpu.h')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_qpu.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qpu.h b/src/gallium/drivers/vc4/vc4_qpu.h index 00aebf0a706..45aac0e135b 100644 --- a/src/gallium/drivers/vc4/vc4_qpu.h +++ b/src/gallium/drivers/vc4/vc4_qpu.h @@ -130,6 +130,7 @@ uint64_t qpu_m_alu2(enum qpu_op_mul op, struct qpu_reg dst, struct qpu_reg src0, struct qpu_reg src1); uint64_t qpu_inst(uint64_t add, uint64_t mul); uint64_t qpu_load_imm_ui(struct qpu_reg dst, uint32_t val); +uint64_t qpu_set_sig(uint64_t inst, uint32_t sig); static inline uint64_t qpu_load_imm_f(struct qpu_reg dst, float val) @@ -163,8 +164,8 @@ A_ALU2(FADD) A_ALU2(FSUB) A_ALU2(FMIN) A_ALU2(FMAX) -A_ALU2(MINABS) -A_ALU2(MAXABS) +A_ALU2(FMINABS) +A_ALU2(FMAXABS) A_ALU1(FTOI) A_ALU1(ITOF) A_ALU2(ADD) |