zink: remove attachment count from pipeline hash
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Thu, 10 Jun 2021 12:17:09 +0000 (08:17 -0400)
committerMarge Bot <eric+marge@anholt.net>
Fri, 27 Aug 2021 02:39:34 +0000 (02:39 +0000)
this is redundant

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

src/gallium/drivers/zink/zink_context.c
src/gallium/drivers/zink/zink_pipeline.c
src/gallium/drivers/zink/zink_pipeline.h

index 0fe0bdd..c976a31 100644 (file)
@@ -2027,9 +2027,6 @@ zink_set_framebuffer_state(struct pipe_context *pctx,
       ctx->gfx_pipeline_state.dirty = true;
    }
    ctx->gfx_pipeline_state.rast_samples = rast_samples;
-   if (ctx->gfx_pipeline_state.num_attachments != state->nr_cbufs)
-      ctx->gfx_pipeline_state.dirty = true;
-   ctx->gfx_pipeline_state.num_attachments = state->nr_cbufs;
 
    /* need to ensure we start a new rp on next draw */
    zink_batch_no_rp(ctx);
index d60bcc2..c61ca87 100644 (file)
@@ -91,8 +91,11 @@ zink_create_gfx_pipeline(struct zink_screen *screen,
    VkPipelineColorBlendAttachmentState blend_att[PIPE_MAX_COLOR_BUFS];
    VkPipelineColorBlendStateCreateInfo blend_state = {0};
    blend_state.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
+   unsigned num_attachments = state->render_pass->state.num_rts;
+   if (state->render_pass->state.have_zsbuf)
+      num_attachments--;
    if (state->void_alpha_attachments) {
-      for (unsigned i = 0; i < state->num_attachments; i++) {
+      for (unsigned i = 0; i < num_attachments; i++) {
          blend_att[i] = state->blend_state->attachments[i];
          if (state->void_alpha_attachments & BITFIELD_BIT(i)) {
             blend_att[i].dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO;
@@ -103,7 +106,7 @@ zink_create_gfx_pipeline(struct zink_screen *screen,
       blend_state.pAttachments = blend_att;
    } else
       blend_state.pAttachments = state->blend_state->attachments;
-   blend_state.attachmentCount = state->num_attachments;
+   blend_state.attachmentCount = num_attachments;
    blend_state.logicOpEnable = state->blend_state->logicop_enable;
    blend_state.logicOp = state->blend_state->logicop_func;
 
index 5d11132..de72882 100644 (file)
@@ -41,7 +41,6 @@ struct zink_gfx_pipeline_state {
    struct zink_render_pass *render_pass;
 
    uint8_t void_alpha_attachments:PIPE_MAX_COLOR_BUFS;
-   uint32_t num_attachments;
    struct zink_blend_state *blend_state;
 
    struct zink_rasterizer_hw_state *rast_state;