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 <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35873>
This commit is contained in:
Caleb Callaway 2025-07-01 23:28:02 +00:00 committed by Marge Bot
parent c757b22c5f
commit 8fd008a45f

View file

@ -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 &&