From cde1be0b847ae328e623ae87c38a5c59ab7d7fc1 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 6 Apr 2022 13:17:38 -0500 Subject: [PATCH] iris: Handle range tracking for global bindings The moment something is bound globally, the whole thing is valid. Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_state.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 002bcdd1f1a..4931bd74037 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -3020,7 +3020,12 @@ iris_set_global_binding(struct pipe_context *ctx, if (resources && resources[i]) { pipe_resource_reference(&ice->state.global_bindings[start_slot + i], resources[i]); + struct iris_resource *res = (void *) resources[i]; + assert(res->base.b.target == PIPE_BUFFER); + util_range_add(&res->base.b, &res->valid_buffer_range, + 0, res->base.b.width0); + uint64_t addr = res->bo->address + res->offset; memcpy(handles[i], &addr, sizeof(addr)); } else {