Mesa (main): zink: split draw_count checking to local variable

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jul 22 00:31:33 UTC 2021


Module: Mesa
Branch: main
Commit: 1ffe73c71a89bf72096bc469df67002221776ae5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ffe73c71a89bf72096bc469df67002221776ae5

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Tue May 11 19:29:36 2021 -0400

zink: split draw_count checking to local variable

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

---

 src/gallium/drivers/zink/zink_draw.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_draw.cpp b/src/gallium/drivers/zink/zink_draw.cpp
index 3fc58ab9701..951369bf801 100644
--- a/src/gallium/drivers/zink/zink_draw.cpp
+++ b/src/gallium/drivers/zink/zink_draw.cpp
@@ -420,6 +420,7 @@ zink_draw_vbo(struct pipe_context *pctx,
    bool mode_changed = ctx->gfx_pipeline_state.mode != dinfo->mode;
    bool reads_drawid = ctx->shader_reads_drawid;
    bool reads_basevertex = ctx->shader_reads_basevertex;
+   unsigned draw_count = ctx->batch.state->draw_count;
 
    update_barriers(ctx, false);
 
@@ -688,7 +689,7 @@ zink_draw_vbo(struct pipe_context *pctx,
    }
 
    bool needs_drawid = reads_drawid && ctx->drawid_broken;
-   batch->state->draw_count += num_draws;
+   draw_count += num_draws;
    if (index_size > 0) {
       if (dindirect && dindirect->buffer) {
          assert(num_draws == 1);
@@ -750,9 +751,10 @@ zink_draw_vbo(struct pipe_context *pctx,
       screen->vk.CmdEndTransformFeedbackEXT(batch->state->cmdbuf, 0, ctx->num_so_targets, counter_buffers, counter_buffer_offsets);
    }
    batch->has_work = true;
+   ctx->batch.state->draw_count = draw_count;
    /* flush if there's >100k draws */
-   if (unlikely(ctx->batch.state->resource_size >= zink_screen(ctx->base.screen)->total_video_mem / 2 ||
-                ctx->batch.state->draw_count >= 100000))
+   if (unlikely(ctx->batch.state->resource_size >= screen->total_video_mem / 2 ||
+                draw_count >= 100000))
       pctx->flush(pctx, NULL, PIPE_FLUSH_ASYNC);
 }
 



More information about the mesa-commit mailing list