Mesa (master): radv: only re-initialize HTILE after ds compute resolves if compressed

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jan 11 11:37:20 UTC 2021


Module: Mesa
Branch: master
Commit: 8914efb5b7e8d1d99c9a3f65909f515df887cd50
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8914efb5b7e8d1d99c9a3f65909f515df887cd50

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Fri Jan  8 14:39:40 2021 +0100

radv: only re-initialize HTILE after ds compute resolves if compressed

If the current layout isn't compressed we don't have to re-initialize
the HTILE metadata.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8389>

---

 src/amd/vulkan/radv_meta_resolve_cs.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_meta_resolve_cs.c b/src/amd/vulkan/radv_meta_resolve_cs.c
index 934aab4aed1..74e6de5fcce 100644
--- a/src/amd/vulkan/radv_meta_resolve_cs.c
+++ b/src/amd/vulkan/radv_meta_resolve_cs.c
@@ -981,7 +981,14 @@ radv_depth_stencil_resolve_subpass_cs(struct radv_cmd_buffer *cmd_buffer,
 	cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
 	                                RADV_CMD_FLAG_INV_VCACHE;
 
-	if (radv_image_has_htile(dst_image)) {
+	VkImageLayout layout =
+		cmd_buffer->state.attachments[dest_att.attachment].current_layout;
+	uint32_t queue_mask = radv_image_queue_family_mask(dst_image,
+							   cmd_buffer->queue_family_index,
+							   cmd_buffer->queue_family_index);
+
+	if (radv_layout_is_htile_compressed(cmd_buffer->device, dst_image,
+					    layout, false, queue_mask)) {
 		VkImageSubresourceRange range = {0};
 		range.aspectMask = aspects;
 		range.baseMipLevel = dst_iview->base_mip;



More information about the mesa-commit mailing list