iris: parse global bindings for every gen

This fixes OpenCL support on gen 12.5+

Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34548>
(cherry picked from commit 57ccfd0502)
This commit is contained in:
Karol Herbst 2025-04-15 11:41:45 +02:00 committed by Eric Engestrom
parent cedd447a92
commit 9290ce4827
2 changed files with 17 additions and 10 deletions

View file

@ -4754,7 +4754,7 @@
"description": "iris: parse global bindings for every gen",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -9283,15 +9283,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 |
@ -9346,6 +9337,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,
@ -9388,6 +9393,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