diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c index 1a75977a2b3..1d1a57fa140 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_context.c +++ b/src/gallium/drivers/etnaviv/etnaviv_context.c @@ -387,7 +387,7 @@ etna_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info, * * This isn't implemented right now, so we don't support GPU written indirect buffers for now. */ - assert(!(etna_resource_status(ctx, etna_resource(indirect->buffer)) & ETNA_PENDING_WRITE)); + assert(!(etna_resource_status(ctx, indirect->buffer) & ETNA_PENDING_WRITE)); resource_read(ctx, indirect->buffer); } diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_acc.c b/src/gallium/drivers/etnaviv/etnaviv_query_acc.c index e356828dbea..a3db83f19e1 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_acc.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query_acc.c @@ -124,7 +124,7 @@ etna_acc_get_query_result(struct etna_context *ctx, struct etna_query *q, * So, regardless of whether we are supposed to wait or not, we do need to * flush now. */ - if (etna_resource_status(ctx, rsc) & ETNA_PENDING_WRITE) + if (etna_resource_status(ctx, &rsc->base) & ETNA_PENDING_WRITE) etna_flush(&ctx->base, NULL, 0, true); if (!wait) diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c b/src/gallium/drivers/etnaviv/etnaviv_resource.c index 32ecf617fef..ce785185e5e 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_resource.c +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c @@ -872,32 +872,31 @@ void etna_resource_used(struct etna_context *ctx, struct pipe_resource *prsc, enum etna_resource_status status) { - struct etna_resource *rsc; struct hash_entry *entry; uint32_t hash; if (!prsc) return; - rsc = etna_resource(prsc); - hash = _mesa_hash_pointer(rsc); + hash = _mesa_hash_pointer(prsc); entry = _mesa_hash_table_search_pre_hashed(ctx->pending_resources, - hash, rsc); + hash, prsc); if (entry) { enum etna_resource_status tmp = (uintptr_t)entry->data; tmp |= status; entry->data = (void *)(uintptr_t)tmp; } else { - _mesa_hash_table_insert_pre_hashed(ctx->pending_resources, hash, rsc, + _mesa_hash_table_insert_pre_hashed(ctx->pending_resources, hash, prsc, (void *)(uintptr_t)status); } } enum etna_resource_status -etna_resource_status(struct etna_context *ctx, struct etna_resource *res) +etna_resource_status(struct etna_context *ctx, struct pipe_resource *prsc) { - struct hash_entry *entry = _mesa_hash_table_search(ctx->pending_resources, res); + struct hash_entry *entry = _mesa_hash_table_search(ctx->pending_resources, + prsc); if (entry) return (enum etna_resource_status)(uintptr_t)entry->data; diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.h b/src/gallium/drivers/etnaviv/etnaviv_resource.h index 94071a1f75e..4f58e5970f1 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_resource.h +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.h @@ -304,7 +304,7 @@ resource_written(struct etna_context *ctx, struct pipe_resource *prsc) } enum etna_resource_status -etna_resource_status(struct etna_context *ctx, struct etna_resource *res); +etna_resource_status(struct etna_context *ctx, struct pipe_resource *prsc); /* Allocate Tile Status for an etna resource. * Tile status is a cache of the clear status per tile. This means a smaller diff --git a/src/gallium/drivers/etnaviv/etnaviv_rs.c b/src/gallium/drivers/etnaviv/etnaviv_rs.c index f659952f688..9af671eea9c 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_rs.c +++ b/src/gallium/drivers/etnaviv/etnaviv_rs.c @@ -892,8 +892,8 @@ etna_try_rs_blit(struct pipe_context *pctx, manual: if (src->layout == ETNA_LAYOUT_TILED && dst->layout == ETNA_LAYOUT_TILED) { - if ((etna_resource_status(ctx, src) & ETNA_PENDING_WRITE) || - (etna_resource_status(ctx, dst) & ETNA_PENDING_WRITE)) + if ((etna_resource_status(ctx, &src->base) & ETNA_PENDING_WRITE) || + (etna_resource_status(ctx, &dst->base) & ETNA_PENDING_WRITE)) etna_flush(pctx, NULL, 0, true); perf_debug_ctx(ctx, "RS blit falls back to sw"); diff --git a/src/gallium/drivers/etnaviv/etnaviv_transfer.c b/src/gallium/drivers/etnaviv/etnaviv_transfer.c index 784f2d7635f..0c3d68acb74 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_transfer.c +++ b/src/gallium/drivers/etnaviv/etnaviv_transfer.c @@ -322,7 +322,7 @@ etna_transfer_map(struct pipe_context *pctx, struct pipe_resource *prsc, * transfers without a temporary resource. */ if (trans->rsc || !(usage & PIPE_MAP_UNSYNCHRONIZED)) { - enum etna_resource_status status = etna_resource_status(ctx, rsc); + enum etna_resource_status status = etna_resource_status(ctx, &rsc->base); uint32_t prep_flags = 0; /*