diff options
author | Eric Anholt <eric@anholt.net> | 2014-08-01 13:32:49 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2014-08-11 14:45:31 -0700 |
commit | 4160ac5ee41630a5c9fc4e1f3520f0fabf42cb14 (patch) | |
tree | b9fa27c50da704655560e2d2a9f5b2e94288049f /src/gallium/drivers/vc4/vc4_qpu_emit.c | |
parent | 2259cc5aebcb16636b1399dd438beed9d9867e67 (diff) | |
download | external_mesa3d-4160ac5ee41630a5c9fc4e1f3520f0fabf42cb14.zip external_mesa3d-4160ac5ee41630a5c9fc4e1f3520f0fabf42cb14.tar.gz external_mesa3d-4160ac5ee41630a5c9fc4e1f3520f0fabf42cb14.tar.bz2 |
vc4: Add support for depth clears and tests within a tile.
This doesn't load/store the Z contents across submits yet. It also
disables early Z, since it's going to require tracking of Z functions
across multiple state updates to track the early Z direction and whether
it can be used.
v2: Move the key setup to before the search for the key.
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_qpu_emit.c')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_qpu_emit.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qpu_emit.c b/src/gallium/drivers/vc4/vc4_qpu_emit.c index 9d55390..33abf6d 100644 --- a/src/gallium/drivers/vc4/vc4_qpu_emit.c +++ b/src/gallium/drivers/vc4/vc4_qpu_emit.c @@ -213,6 +213,8 @@ vc4_generate_code(struct qcompile *c) if (qinst->src[i].file == QFILE_TEMP) reg_uses_remaining[qinst->src[i].index]++; } + if (qinst->op == QOP_TLB_PASSTHROUGH_Z_WRITE) + reg_in_use[3 + 32 + QPU_R_FRAG_PAYLOAD_ZW] = true; } switch (c->stage) { @@ -458,6 +460,12 @@ vc4_generate_code(struct qcompile *c) break; + case QOP_TLB_PASSTHROUGH_Z_WRITE: + queue(c, qpu_inst(qpu_a_MOV(qpu_ra(QPU_W_TLB_Z), + qpu_rb(QPU_R_FRAG_PAYLOAD_ZW)), + qpu_m_NOP())); + break; + case QOP_TLB_COLOR_WRITE: queue(c, qpu_inst(qpu_a_MOV(qpu_tlbc(), src[0]), |