Mesa (main): radv: Add hooks after in-renderpass meta operations.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Oct 13 14:32:01 UTC 2021
Module: Mesa
Branch: main
Commit: 64b237436a2bbdc5e111f97b5ace92154a87e958
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=64b237436a2bbdc5e111f97b5ace92154a87e958
Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date: Wed Oct 13 02:52:11 2021 +0200
radv: Add hooks after in-renderpass meta operations.
So that we can mark the rendertargets dirty.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13239>
---
src/amd/vulkan/radv_cmd_buffer.c | 7 +++++++
src/amd/vulkan/radv_meta_clear.c | 4 ++--
src/amd/vulkan/radv_meta_resolve.c | 2 +-
src/amd/vulkan/radv_meta_resolve_fs.c | 4 ++--
src/amd/vulkan/radv_private.h | 2 ++
5 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 104600bc574..57faae325f2 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -5735,6 +5735,13 @@ radv_cmd_buffer_begin_subpass(struct radv_cmd_buffer *cmd_buffer, uint32_t subpa
assert(cmd_buffer->cs->cdw <= cdw_max);
}
+void
+radv_cmd_buffer_restore_subpass(struct radv_cmd_buffer *cmd_buffer,
+ const struct radv_subpass *subpass)
+{
+ radv_cmd_buffer_set_subpass(cmd_buffer, subpass);
+}
+
static void
radv_cmd_buffer_end_subpass(struct radv_cmd_buffer *cmd_buffer)
{
diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index 0974733fae2..31e4a9a2eb7 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -461,7 +461,7 @@ emit_color_clear(struct radv_cmd_buffer *cmd_buffer, const VkClearAttachment *cl
radv_CmdDraw(cmd_buffer_h, 3, clear_rect->layerCount, 0, clear_rect->baseArrayLayer);
}
- radv_cmd_buffer_set_subpass(cmd_buffer, subpass);
+ radv_cmd_buffer_restore_subpass(cmd_buffer, subpass);
}
static void
@@ -814,7 +814,7 @@ emit_depthstencil_clear(struct radv_cmd_buffer *cmd_buffer, const VkClearAttachm
radv_CmdSetStencilReference(cmd_buffer_h, VK_STENCIL_FACE_FRONT_BIT, prev_reference);
}
- radv_cmd_buffer_set_subpass(cmd_buffer, subpass);
+ radv_cmd_buffer_restore_subpass(cmd_buffer, subpass);
}
static uint32_t
diff --git a/src/amd/vulkan/radv_meta_resolve.c b/src/amd/vulkan/radv_meta_resolve.c
index e6b82418dfc..b012a757e5b 100644
--- a/src/amd/vulkan/radv_meta_resolve.c
+++ b/src/amd/vulkan/radv_meta_resolve.c
@@ -730,7 +730,7 @@ radv_cmd_buffer_resolve_subpass_hw(struct radv_cmd_buffer *cmd_buffer)
&(VkExtent2D){fb->width, fb->height});
}
- radv_cmd_buffer_set_subpass(cmd_buffer, subpass);
+ radv_cmd_buffer_restore_subpass(cmd_buffer, subpass);
radv_meta_restore(&saved_state, cmd_buffer);
}
diff --git a/src/amd/vulkan/radv_meta_resolve_fs.c b/src/amd/vulkan/radv_meta_resolve_fs.c
index 4d8d6a17e12..1733dce702f 100644
--- a/src/amd/vulkan/radv_meta_resolve_fs.c
+++ b/src/amd/vulkan/radv_meta_resolve_fs.c
@@ -1108,7 +1108,7 @@ radv_cmd_buffer_resolve_subpass_fs(struct radv_cmd_buffer *cmd_buffer)
&(VkExtent2D){fb->width, fb->height});
}
- radv_cmd_buffer_set_subpass(cmd_buffer, subpass);
+ radv_cmd_buffer_restore_subpass(cmd_buffer, subpass);
radv_meta_restore(&saved_state, cmd_buffer);
}
@@ -1181,7 +1181,7 @@ radv_depth_stencil_resolve_subpass_fs(struct radv_cmd_buffer *cmd_buffer,
emit_depth_stencil_resolve(cmd_buffer, &tsrc_iview, dst_iview,
&(VkExtent2D){fb->width, fb->height}, aspects, resolve_mode);
- radv_cmd_buffer_set_subpass(cmd_buffer, subpass);
+ radv_cmd_buffer_restore_subpass(cmd_buffer, subpass);
radv_image_view_finish(&tsrc_iview);
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index f4cf110df05..206f302abe8 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -1554,6 +1554,8 @@ bool radv_cmd_buffer_upload_alloc(struct radv_cmd_buffer *cmd_buffer, unsigned s
unsigned *out_offset, void **ptr);
void radv_cmd_buffer_set_subpass(struct radv_cmd_buffer *cmd_buffer,
const struct radv_subpass *subpass);
+void radv_cmd_buffer_restore_subpass(struct radv_cmd_buffer *cmd_buffer,
+ const struct radv_subpass *subpass);
bool radv_cmd_buffer_upload_data(struct radv_cmd_buffer *cmd_buffer, unsigned size,
const void *data, unsigned *out_offset);
More information about the mesa-commit
mailing list