- struct radv_image_view tdst_iview;
- radv_image_view_init(&tdst_iview, cmd_buffer->device,
- &(VkImageViewCreateInfo) {
- .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
- .image = radv_image_to_handle(dst_image),
- .viewType = radv_meta_get_view_type(dst_image),
- .format = vk_to_non_srgb_format(dst_image->vk_format),
- .subresourceRange = {
- .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- .baseMipLevel = dst_iview->base_mip,
- .levelCount = 1,
- .baseArrayLayer = layer,
- .layerCount = 1,
- },
- });
- emit_resolve(cmd_buffer,
- &tsrc_iview,
- &tdst_iview,
- &(VkOffset2D) { 0, 0 },
- &(VkOffset2D) { 0, 0 },
- &(VkExtent2D) { fb->width, fb->height });
- }
+ VkImageResolve region = {
+ .extent = (VkExtent3D){ fb->width, fb->height, 0 },
+ .srcSubresource = (VkImageSubresourceLayers) {
+ .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ .mipLevel = src_iview->base_mip,
+ .baseArrayLayer = 0,
+ .layerCount = src_iview->image->info.array_size
+ },
+ .dstSubresource = (VkImageSubresourceLayers) {
+ .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ .mipLevel = dst_iview->base_mip,
+ .baseArrayLayer = 0,
+ .layerCount = dst_iview->image->info.array_size
+ },
+ .srcOffset = (VkOffset3D){ 0, 0, 0 },
+ .dstOffset = (VkOffset3D){ 0, 0, 0 },
+ };
+
+ radv_meta_resolve_compute_image(cmd_buffer,
+ src_iview->image,
+ src_iview->vk_format,
+ src_att.layout,
+ dst_iview->image,
+ dst_iview->vk_format,
+ dst_att.layout,
+ 1, ®ion);