zink: explicitly flag fb attachments as being written to in render passes
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 29 Jun 2020 18:28:27 +0000 (14:28 -0400)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 14 Oct 2020 13:20:37 +0000 (09:20 -0400)
we need to ensure that we're accurately setting this hint in order to avoid
synchronization issues when determining whether we can read from the buffer

Reviewed-by: Erik Faye-Lun <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6924>

src/gallium/drivers/zink/zink_context.c

index 6043ff4..0ea5a50 100644 (file)
@@ -552,6 +552,8 @@ zink_begin_render_pass(struct zink_context *ctx, struct zink_batch *batch)
 
    zink_render_pass_reference(screen, &batch->rp, ctx->gfx_pipeline_state.render_pass);
    zink_framebuffer_reference(screen, &batch->fb, ctx->framebuffer);
+   for (struct zink_surface **surf = (struct zink_surface **)batch->fb->surfaces; *surf; surf++)
+      zink_batch_reference_resource_rw(batch, zink_resource((*surf)->base.texture), true);
 
    vkCmdBeginRenderPass(batch->cmdbuf, &rpbi, VK_SUBPASS_CONTENTS_INLINE);
 }