Module: Mesa Branch: master Commit: cbf9a7c3c19770e19ebd5466df01b6ccb2fc9a18 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbf9a7c3c19770e19ebd5466df01b6ccb2fc9a18
Author: Iago Toral Quiroga <[email protected]> Date: Thu Mar 25 11:36:03 2021 +0100 broadcom/compiler: flag TMU read dependencies against last TMU config Instead of last TMU write. According to the documentation, the entries in the output FIFO are pushed with the *final* input write for the lookup, which is the one terminating the sequence. We flag these with last_tmu_config. This will allow us to move all TMU register writes for a lookup except the last one ahead of the LDTMUs for the previous lookup, possibly allowing us to pair up these writes the wrtmuc instructions for the same lookup, turning code like this: nop ; nop ; wrtmuc (tex[0].p0 | 0x3) nop ; nop ; wrtmuc (tex[2].p1 | 0x1) nop ; nop ; ldunif (ubo[2]+0xe0) fadd r4, rf33, rf51 ; mov unifa, r5 ; ldunif (ubo[2]+0x110) fmax rf34, 0, r4 ; nop nop ; mov tmut, rf11 nop ; mov tmus, rf0 into: nop ; mov tmut, rf11 ; wrtmuc (tex[0].p0 | 0x3) nop ; nop ; wrtmuc (tex[2].p1 | 0x1) nop ; nop ; ldunif (ubo[2]+0xe0) fadd r4, rf33, rf51 ; mov unifa, r5 ; ldunif (ubo[2]+0x110) fmax rf34, 0, r4 ; nop nop ; mov tmus, rf0 total instructions in shared programs: 13648140 -> 13602500 (-0.33%) instructions in affected programs: 3497402 -> 3451762 (-1.30%) helped: 12044 HURT: 3484 Instructions are helped. total max-temps in shared programs: 2318687 -> 2317927 (-0.03%) max-temps in affected programs: 17234 -> 16474 (-4.41%) helped: 615 HURT: 198 Max-temps are helped. total sfu-stalls in shared programs: 32354 -> 32074 (-0.87%) sfu-stalls in affected programs: 1462 -> 1182 (-19.15%) helped: 461 HURT: 188 Sfu-stalls are helped. total inst-and-stalls in shared programs: 13680494 -> 13634574 (-0.34%) inst-and-stalls in affected programs: 3514405 -> 3468485 (-1.31%) helped: 12062 HURT: 3486 Inst-and-stalls are helped. Reviewed-by: Alejandro PiƱeiro <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9856> --- src/broadcom/compiler/qpu_schedule.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/broadcom/compiler/qpu_schedule.c b/src/broadcom/compiler/qpu_schedule.c index 069edb7fa6d..a6430ac2195 100644 --- a/src/broadcom/compiler/qpu_schedule.c +++ b/src/broadcom/compiler/qpu_schedule.c @@ -407,7 +407,7 @@ calculate_deps(struct schedule_state *state, struct schedule_node *n) if (v3d_qpu_waits_on_tmu(inst)) { /* TMU loads are coming from a FIFO, so ordering is important. */ - add_write_dep(state, &state->last_tmu_write, n); + add_write_dep(state, &state->last_tmu_config, n); } /* Allow wrtmuc to be reordered with other instructions in the _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
