freedreno/a6xx: Drop the WFI in constant uploads.
authorEric Anholt <eric@anholt.net>
Wed, 19 Jun 2019 18:36:29 +0000 (11:36 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 17 Jul 2019 23:20:12 +0000 (16:20 -0700)
Now that the bin vs render constlen is fixed, we can skip these waits.

Improves webgl aquarium performance at 10k fish from 27fps to 33.
Some highlights from renderdoc-traces:

traces/android/minecraft.rdc:             +17.1% +/-   3.4%
traces/glmark2/ideas-speed=duration.rdc:  +11.6% +/-   2.4%
traces/android/candycrush.rdc:            +5.4%  +/-   1.1%
traces/android/clashofclans.rdc:          +4.4%  +/-   1.3%

Reviewed-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/a6xx/fd6_emit.c

index 5e8a65c9dd73159fc5fba37a13b333ac35396b28..e75bb369bba85b6884ffcf1d1d8431d58874d0d8 100644 (file)
@@ -934,7 +934,6 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit)
                struct fd_ringbuffer *vsconstobj = fd_submit_new_ringbuffer(
                                ctx->batch->submit, 0x1000, FD_RINGBUFFER_STREAMING);
 
-               OUT_WFI5(vsconstobj);
                ir3_emit_vs_consts(vp, vsconstobj, ctx, emit->info);
                fd6_emit_add_group(emit, vsconstobj, FD6_GROUP_VS_CONST, 0x7);
                fd_ringbuffer_del(vsconstobj);
@@ -944,7 +943,6 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit)
                struct fd_ringbuffer *fsconstobj = fd_submit_new_ringbuffer(
                                ctx->batch->submit, 0x1000, FD_RINGBUFFER_STREAMING);
 
-               OUT_WFI5(fsconstobj);
                ir3_emit_fs_consts(fp, fsconstobj, ctx);
                fd6_emit_add_group(emit, fsconstobj, FD6_GROUP_FS_CONST, 0x6);
                fd_ringbuffer_del(fsconstobj);