iris: Re-emit push constants if we have a varying workgroup size
[mesa.git] / src / gallium / drivers / iris / iris_state.c
index 341cdbdb20879f84c4925fc6bc724d667b3f54f3..cf36dfa81d9fdb3e337ca277e1c3e3ac9dfdb59a 100644 (file)
@@ -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 &&