[Mesa-dev] [PATCH v2 07/20] gallium: add indirect compute parameters to pipe_grid_info
Samuel Pitoiset
samuel.pitoiset at gmail.com
Sat Feb 6 22:04:40 UTC 2016
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 at gmail.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com> (v1)
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu> (v1)
---
src/gallium/include/pipe/p_state.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
index 5d0ebca..5209afe 100644
--- a/src/gallium/include/pipe/p_state.h
+++ b/src/gallium/include/pipe/p_state.h
@@ -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 */
};
/**
--
2.6.4
More information about the mesa-dev
mailing list