zink: move compute descriptor binds down in execution

this has to occur after the pipeline has been updated to account for
async compile

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18197>
This commit is contained in:
Mike Blumenkrantz 2022-08-15 13:18:58 -04:00 committed by Marge Bot
parent b2696ca58e
commit 9ee059b5b3

View file

@ -882,11 +882,6 @@ zink_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info)
0, 1, &mb, 0, NULL, 0, NULL);
}
if (zink_program_has_descriptors(&ctx->curr_compute->base))
zink_descriptors_update(ctx, true);
if (ctx->di.any_bindless_dirty && ctx->curr_compute->base.dd.bindless)
zink_descriptors_update_bindless(ctx);
zink_program_update_compute_pipeline_state(ctx, ctx->curr_compute, info->block);
VkPipeline prev_pipeline = ctx->compute_pipeline_state.pipeline;
@ -910,6 +905,11 @@ zink_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info)
zink_select_launch_grid(ctx);
}
if (zink_program_has_descriptors(&ctx->curr_compute->base))
zink_descriptors_update(ctx, true);
if (ctx->di.any_bindless_dirty && ctx->curr_compute->base.dd.bindless)
zink_descriptors_update_bindless(ctx);
if (BITSET_TEST(ctx->curr_compute->shader->nir->info.system_values_read, SYSTEM_VALUE_WORK_DIM))
VKCTX(CmdPushConstants)(batch->state->cmdbuf, ctx->curr_compute->base.layout, VK_SHADER_STAGE_COMPUTE_BIT,
offsetof(struct zink_cs_push_constant, work_dim), sizeof(uint32_t),