From 7958051f4344f3b6fbccc60c0c3f65cdf656b416 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 2 Sep 2020 13:48:51 -0500 Subject: [PATCH] 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 Part-of: (cherry picked from commit bbaa62e4e156012f05d2ddd9b19610d6465b62e7) --- .pick_status.json | 2 +- src/gallium/drivers/iris/iris_state.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index a8959b601bb..f12673a54cb 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2767,7 +2767,7 @@ "description": "iris: Re-emit push constants if we have a varying workgroup size", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "33c61eb2f10526c0b90c5ad376e5b0433aec296d" }, diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index ead1302e152..317cc1ce1bd 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -6658,7 +6658,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 &&