radv: only decompress the depth/stencil aspect that needs to be resolved
For depth/stencil images, the driver was decompressing both aspects while it should be enough to only decompress the one that's going to be resolved. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8561>
This commit is contained in:

committed by
Marge Bot

parent
36a4aeb91f
commit
093b3f6e1f
@@ -1198,18 +1198,25 @@ radv_depth_stencil_resolve_subpass_fs(struct radv_cmd_buffer *cmd_buffer,
|
||||
barrier.dst_access_mask = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT;
|
||||
radv_subpass_barrier(cmd_buffer, &barrier);
|
||||
|
||||
radv_decompress_resolve_subpass_src(cmd_buffer);
|
||||
struct radv_subpass_attachment src_att = *subpass->depth_stencil_attachment;
|
||||
struct radv_image_view *src_iview =
|
||||
cmd_buffer->state.attachments[src_att.attachment].iview;
|
||||
struct radv_image *src_image = src_iview->image;
|
||||
|
||||
VkImageResolve2KHR region = {0};
|
||||
region.sType = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR;
|
||||
region.srcSubresource.aspectMask = aspects;
|
||||
region.srcSubresource.mipLevel = 0;
|
||||
region.srcSubresource.baseArrayLayer = 0;
|
||||
region.srcSubresource.layerCount = 1;
|
||||
|
||||
radv_decompress_resolve_src(cmd_buffer, src_image, src_att.layout, ®ion);
|
||||
|
||||
radv_meta_save(&saved_state, cmd_buffer,
|
||||
RADV_META_SAVE_GRAPHICS_PIPELINE |
|
||||
RADV_META_SAVE_DESCRIPTORS);
|
||||
|
||||
struct radv_subpass_attachment src_att = *subpass->depth_stencil_attachment;
|
||||
struct radv_subpass_attachment dst_att = *subpass->ds_resolve_attachment;
|
||||
|
||||
struct radv_image_view *src_iview =
|
||||
cmd_buffer->state.attachments[src_att.attachment].iview;
|
||||
struct radv_image *src_image = src_iview->image;
|
||||
struct radv_image_view *dst_iview =
|
||||
cmd_buffer->state.attachments[dst_att.attachment].iview;
|
||||
|
||||
|
Reference in New Issue
Block a user