freedreno/ir3: move const_state to ir3_shader
authorRob Clark <robdclark@chromium.org>
Tue, 7 May 2019 13:38:01 +0000 (06:38 -0700)
committerRob Clark <robdclark@chromium.org>
Tue, 7 May 2019 14:26:00 +0000 (07:26 -0700)
commitb15c46e6bf4cd375ae0b580bd1a0ec139e8dd3ef
tree13462a9ca26d8156ff1acd9b24af0508e79ae62e
parent5690f83bb533cd62747194f0029892e9dc662669
freedreno/ir3: move const_state to ir3_shader

For a6xx, we construct/emit a single VS const state used for both
binning pass and draw pass.  So far we were mostly getting lucky that
there were not (obvious) mismatches between the const_state (like
different lowered immediates) between the binning and draw pass
VS ir3_shader_variant.

And I guess this situation will come up more as GS and tess is added
into the equation.

Since really everything about the const state is not specific to the
variant, move this.  The main exception is lowered immediates, but these
are the last to appear in the layout, and it doesn't hurt for each new
shader variant to just append any immed's it lowers to the end of the
immediate state.

Signed-off-by: Rob Clark <robdclark@chromium.org>
src/freedreno/ir3/ir3_a4xx.c
src/freedreno/ir3/ir3_compiler_nir.c
src/freedreno/ir3/ir3_context.c
src/freedreno/ir3/ir3_cp.c
src/freedreno/ir3/ir3_nir.c
src/freedreno/ir3/ir3_nir.h
src/freedreno/ir3/ir3_shader.c
src/freedreno/ir3/ir3_shader.h
src/freedreno/vulkan/tu_shader.c
src/gallium/drivers/freedreno/ir3/ir3_gallium.c