freedreno: Track the set of UBOs to be uploaded in UBO analysis.
authorEric Anholt <eric@anholt.net>
Mon, 9 Dec 2019 19:55:21 +0000 (11:55 -0800)
committerEric Anholt <eric@anholt.net>
Mon, 9 Dec 2019 22:13:50 +0000 (14:13 -0800)
commit0470a03769715a3258c04e6b18848cef321bd213
tree3ea1ea958e76193e9efaebcf75a2b8469fef4137
parent10da0a9d18a15044ca92553ed17adb7c445394c8
freedreno: Track the set of UBOs to be uploaded in UBO analysis.

We were iterating over the entire 32-entry array each time, when we
can just use a bitset to know that we're only uploading from the first
entry normally.

Knocks ir3_emit_user_consts down from ~.5% of CPU to .1% on WebGL
fishtank.

Reviewed-by: Rob Clark <robdclark@chromium.org>
src/freedreno/ir3/ir3_nir_analyze_ubo_ranges.c
src/freedreno/ir3/ir3_shader.h
src/gallium/drivers/freedreno/ir3/ir3_gallium.c