zink: make batch_usage_set take a batch state param
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 7 May 2021 12:27:02 +0000 (08:27 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 16 Jun 2021 02:45:45 +0000 (02:45 +0000)
no functional changes

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11399>

src/gallium/drivers/zink/zink_batch.c
src/gallium/drivers/zink/zink_batch.h
src/gallium/drivers/zink/zink_context.c
src/gallium/drivers/zink/zink_query.c

index 8b39e4c..f696773 100644 (file)
@@ -567,13 +567,13 @@ zink_batch_reference_resource_rw(struct zink_batch *batch, struct zink_resource
        }
    if (write) {
       if (stencil)
-         zink_batch_usage_set(&stencil->obj->writes, batch->state->fence.batch_id);
-      zink_batch_usage_set(&res->obj->writes, batch->state->fence.batch_id);
+         zink_batch_usage_set(&stencil->obj->writes, batch->state);
+      zink_batch_usage_set(&res->obj->writes, batch->state);
       res->scanout_dirty = !!res->scanout_obj;
    } else {
       if (stencil)
-         zink_batch_usage_set(&stencil->obj->reads, batch->state->fence.batch_id);
-      zink_batch_usage_set(&res->obj->reads, batch->state->fence.batch_id);
+         zink_batch_usage_set(&stencil->obj->reads, batch->state);
+      zink_batch_usage_set(&res->obj->reads, batch->state);
    }
    /* multiple array entries are fine */
    if (res->obj->persistent_maps)
@@ -590,7 +590,7 @@ batch_ptr_add_usage(struct zink_batch *batch, struct set *s, void *ptr, struct z
       return false;
    _mesa_set_search_and_add(s, ptr, &found);
    assert(!found);
-   zink_batch_usage_set(u, batch->state->fence.batch_id);
+   zink_batch_usage_set(u, batch->state);
    return true;
 }
 
index 5599318..1079f1c 100644 (file)
@@ -181,9 +181,9 @@ zink_batch_usage_unset(struct zink_batch_usage *u, struct zink_batch_state *bs)
 }
 
 static inline void
-zink_batch_usage_set(struct zink_batch_usage *u, uint32_t batch_id)
+zink_batch_usage_set(struct zink_batch_usage *u, struct zink_batch_state *bs)
 {
-   u->usage = batch_id;
+   u->usage = bs->fence.batch_id;
 }
 
 static inline bool
index 75b6f23..69c78b8 100644 (file)
@@ -539,7 +539,7 @@ zink_bind_sampler_states(struct pipe_context *pctx,
       ctx->sampler_states[shader][start_slot + i] = state;
       ctx->di.textures[shader][start_slot + i].sampler = state ? state->sampler : VK_NULL_HANDLE;
       if (state)
-         zink_batch_usage_set(&state->batch_uses, ctx->curr_batch);
+         zink_batch_usage_set(&state->batch_uses, ctx->batch.state);
    }
    ctx->di.num_samplers[shader] = start_slot + num_samplers;
 }
@@ -1741,7 +1741,7 @@ update_resource_refs_for_stage(struct zink_context *ctx, enum pipe_shader_type s
             struct zink_sampler_state *sampler_state = ctx->sampler_states[stage][j];
             struct zink_image_view *iv = &ctx->image_views[stage][j];
             if (sampler_state && i == ZINK_DESCRIPTOR_TYPE_SAMPLER_VIEW && j <= ctx->di.num_samplers[stage])
-               zink_batch_usage_set(&sampler_state->batch_uses, ctx->curr_batch);
+               zink_batch_usage_set(&sampler_state->batch_uses, ctx->batch.state);
             if (sv && i == ZINK_DESCRIPTOR_TYPE_SAMPLER_VIEW && j <= ctx->di.num_sampler_views[stage])
                zink_batch_reference_sampler_view(batch, sv);
             else if (i == ZINK_DESCRIPTOR_TYPE_IMAGE && j <= ctx->di.num_images[stage])
index 4dac0f2..64fa30b 100644 (file)
@@ -684,7 +684,7 @@ begin_query(struct zink_context *ctx, struct zink_batch *batch, struct zink_quer
    if (needs_stats_list(q))
       list_addtail(&q->stats_list, &ctx->primitives_generated_queries);
    p_atomic_inc(&q->fences);
-   zink_batch_usage_set(&q->batch_id, batch->state->fence.batch_id);
+   zink_batch_usage_set(&q->batch_id, batch->state);
    _mesa_set_add(batch->state->active_queries, q);
 }
 
@@ -718,7 +718,7 @@ end_query(struct zink_context *ctx, struct zink_batch *batch, struct zink_query
          reset_pool(ctx, batch, q);
       vkCmdWriteTimestamp(batch->state->cmdbuf, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
                           q->query_pool, q->curr_query);
-      zink_batch_usage_set(&q->batch_id, batch->state->fence.batch_id);
+      zink_batch_usage_set(&q->batch_id, batch->state);
    } else if (q->type == PIPE_QUERY_PRIMITIVES_EMITTED ||
             q->type == PIPE_QUERY_PRIMITIVES_GENERATED ||
             q->type == PIPE_QUERY_SO_OVERFLOW_PREDICATE) {