summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ekstrand <jason@jlekstrand.net>2020-09-02 13:48:51 -0500
committerMarge Bot <eric+marge@anholt.net>2020-09-02 20:38:22 +0000
commitbbaa62e4e156012f05d2ddd9b19610d6465b62e7 (patch)
tree7d1638243e1709bdfee6ded012acae44a0dc7575
parentfe18a0fd45c79cdba7b63959657861488c775c0d (diff)
iris: Re-emit push constants if we have a varying workgroup size
Fixes: 33c61eb2f10526 "iris: Implement ARB_compute_variable_group_size" Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6570>
-rw-r--r--src/gallium/drivers/iris/iris_state.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 341cdbdb208..cf36dfa81d9 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -6700,7 +6700,8 @@ iris_upload_gpgpu_walker(struct iris_context *ice,
}
/* TODO: Combine subgroup-id with cbuf0 so we can push regular uniforms */
- if (stage_dirty & IRIS_STAGE_DIRTY_CS) {
+ if ((stage_dirty & IRIS_STAGE_DIRTY_CS) ||
+ cs_prog_data->local_size[0] == 0 /* Variable local group size */) {
uint32_t curbe_data_offset = 0;
assert(cs_prog_data->push.cross_thread.dwords == 0 &&
cs_prog_data->push.per_thread.dwords == 1 &&