From 8fd008a45f4f547d476dc212d0e5849e5e14ac4a Mon Sep 17 00:00:00 2001 From: Caleb Callaway Date: Tue, 1 Jul 2025 23:28:02 +0000 Subject: [PATCH] iris: re-emit push constants at compute batch start Per Ken Graunke, corruption issues with push constants for render batches on Gen12 graphics have been observed and worked around by re-emitting push constants at the start of the batch buffer. We're seeing similar issues with compute batches, so we'll apply the same work-around. Fixes corruption reported in Blender on ADL/RPL CC: mesa-stable Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_state.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index f894b1bc2b4..a5787c5f1db 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -9310,6 +9310,7 @@ 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) || + (GFX_VER == 12 && !batch->contains_draw) || cs_data->local_size[0] == 0 /* Variable local group size */) { uint32_t curbe_data_offset = 0; assert(cs_data->push.cross_thread.dwords == 0 &&