diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 1e2bd3cb402..fb4c080e877 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -9263,15 +9263,6 @@ iris_upload_gpgpu_walker(struct iris_context *ice, } } - for (unsigned i = 0; i < IRIS_MAX_GLOBAL_BINDINGS; i++) { - struct pipe_resource *res = ice->state.global_bindings[i]; - if (!res) - break; - - iris_use_pinned_bo(batch, iris_resource_bo(res), - true, IRIS_DOMAIN_NONE); - } - if (stage_dirty & (IRIS_STAGE_DIRTY_SAMPLER_STATES_CS | IRIS_STAGE_DIRTY_BINDINGS_CS | IRIS_STAGE_DIRTY_CONSTANTS_CS | @@ -9326,6 +9317,20 @@ iris_upload_gpgpu_walker(struct iris_context *ice, #endif /* #if GFX_VERx10 >= 125 */ +static void +iris_use_global_bindings(struct iris_context *ice, + struct iris_batch *batch) +{ + for (unsigned i = 0; i < IRIS_MAX_GLOBAL_BINDINGS; i++) { + struct pipe_resource *res = ice->state.global_bindings[i]; + if (!res) + break; + + iris_use_pinned_bo(batch, iris_resource_bo(res), + true, IRIS_DOMAIN_NONE); + } +} + static void iris_upload_compute_state(struct iris_context *ice, struct iris_batch *batch, @@ -9367,6 +9372,8 @@ iris_upload_compute_state(struct iris_context *ice, iris_use_pinned_bo(batch, border_color_pool->bo, false, IRIS_DOMAIN_NONE); + iris_use_global_bindings(ice, batch); + #if GFX_VER >= 12 genX(invalidate_aux_map_state)(batch); #endif