anv: Move gen8+ push constant packet workaround.
authorRafael Antognolli <rafael.antognolli@intel.com>
Mon, 2 Dec 2019 21:41:32 +0000 (13:41 -0800)
committerRafael Antognolli <rafael.antognolli@intel.com>
Wed, 4 Dec 2019 20:48:25 +0000 (20:48 +0000)
commitc0225a728e1f33b2073af7c64d9449680aece536
tree6c1d3eb70595e0b86787117d1f69d933264bdd80
parent06438ea7fa137db821b3c7d256008c26e23012a7
anv: Move gen8+ push constant packet workaround.

Store push_ranges in ascending order, and only "shift" them to the end
of the array during state packet emission.

We don't need this workaround with the new 3DSTATE_CONSTANT_ALL packet.
So instead of applying the workaround here just for GEN < 12 (which
requires and extra loop through all the ranges to figure out if we
should shift them or not), we simply move the whole logic to the state
emission code. At that point, in a later commit, we are already looping
through all of the ranges anyway to check which packet we will be using,
so we might as well implement the workaround there, where it is going to
be used.

v3: Move gen8+ workaround to the state emission code (Caio).
v4: Add explanation of why we moved the workaroudn (Caio).

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
src/intel/vulkan/anv_nir_compute_push_layout.c
src/intel/vulkan/genX_cmd_buffer.c