iris: Rework push constants emitting code.
authorRafael Antognolli <rafael.antognolli@intel.com>
Mon, 23 Sep 2019 17:15:52 +0000 (10:15 -0700)
committerRafael Antognolli <rafael.antognolli@intel.com>
Wed, 4 Dec 2019 20:48:25 +0000 (20:48 +0000)
commit1ba9a18911ae687217ded424211a2ece6bcd1155
tree0666089025002ea01bd40ff2e48ef6da29440dfe
parent9db044792f609867654a016321f80511ce5f9bf6
iris: Rework push constants emitting code.

Split into a function the logic to gather the push constant buffers,
which now stores them in struct push_bos. Another function is added to
emit the packet, using data from the push_bos struct.

This will be useful when adding a new function for emitting push
constants for newer platforms.

v2 (Suggestions from Caio):
   - rename 'n' -> 'buffer_count'
   - remove large_buffers (for now)
   - initialize push_bos
   - remove assert
   - change for() condition (i <= 3 -> i < 4)
v3:
   - Add comment about size limit.
   - Rework "shift" logic and 'for' loop.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
src/gallium/drivers/iris/iris_state.c