v3d: Upload all of UBO[0] if any indirect load occurs.
authorEric Anholt <eric@anholt.net>
Tue, 19 Mar 2019 16:58:14 +0000 (09:58 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 21 Mar 2019 21:20:50 +0000 (14:20 -0700)
commit16f2770eb40e7e11d149b4551de27d8d663f4e22
treeba45e5afb703a3125536de9e396c632700b6a90b
parent320e96baced8093c6af11d86a216d83cee1eeb30
v3d: Upload all of UBO[0] if any indirect load occurs.

The idea was that we could skip uploading the constant-indexed uniform
data and just upload the uniforms that are variably-indexed.  However,
since the VS bin and render shaders may have a different set of uniforms
used, this meant that we had to upload the UBO for each of them.  The
first case is generally a fairly small impact (usually the uniform array
is the most space, other than a couple of FSes in shader-db), while the
second is a larger impact: 3DMMES2 was uploading 38k/frame of uniforms
instead of 18k.

Given that the optimization is of dubious value, has a big downside, and
is quite a bit of code, just drop it.  No change in shader-db.  No change
on 3DMMES2 (n=15).
src/broadcom/compiler/nir_to_vir.c
src/broadcom/compiler/v3d_compiler.h
src/broadcom/compiler/vir.c
src/gallium/drivers/v3d/v3d_uniforms.c