gallium: add indirect compute parameters to pipe_grid_info

Like indirect draw, we need to store a resource and an offset that
needs to be 4 byte aligned. When indirect is used, the size of the
grid (in blocks) is stored with three 32-bit integers.

Changes from v2:
 - s/most values/block sizes/

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Samuel Pitoiset 2016-01-18 16:19:32 +01:00
parent bfd695e1d2
commit 43f4420fba

View file

@ -704,6 +704,18 @@ struct pipe_grid_info
* Determine the layout of the grid (in block units) to be used.
*/
uint grid[3];
/* Indirect compute parameters resource: If not NULL, block sizes are taken
* from this buffer instead, which is laid out as follows:
*
* struct {
* uint32_t num_blocks_x;
* uint32_t num_blocks_y;
* uint32_t num_blocks_z;
* };
*/
struct pipe_resource *indirect;
unsigned indirect_offset; /**< must be 4 byte aligned */
};
/**