mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 02:00:21 +01:00
radv: Disable DCC explicitly for incompatible copies.
If we enable DCC for GENERAL we cannot set the layout to GENERAL to disable DCC, so do it explicitly. Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7004>
This commit is contained in:
parent
f23eaf0db6
commit
18ddd48e70
4 changed files with 10 additions and 5 deletions
|
|
@ -147,6 +147,7 @@ struct radv_meta_blit2d_surf {
|
|||
unsigned layer;
|
||||
VkImageAspectFlags aspect_mask;
|
||||
VkImageLayout current_layout;
|
||||
bool disable_compression;
|
||||
};
|
||||
|
||||
struct radv_meta_blit2d_buffer {
|
||||
|
|
|
|||
|
|
@ -310,7 +310,9 @@ radv_meta_blit2d_normal_dst(struct radv_cmd_buffer *cmd_buffer,
|
|||
},
|
||||
.clearValueCount = 0,
|
||||
.pClearValues = NULL,
|
||||
}, NULL);
|
||||
}, &(struct radv_extra_render_pass_begin_info) {
|
||||
.disable_dcc = dst->disable_compression
|
||||
});
|
||||
|
||||
radv_cmd_buffer_set_subpass(cmd_buffer,
|
||||
&cmd_buffer->state.pass->subpasses[0]);
|
||||
|
|
|
|||
|
|
@ -1400,7 +1400,9 @@ create_iview(struct radv_cmd_buffer *cmd_buffer,
|
|||
.baseArrayLayer = surf->layer,
|
||||
.layerCount = 1
|
||||
},
|
||||
}, NULL);
|
||||
}, &(struct radv_image_view_extra_create_info) {
|
||||
.disable_compression = surf->disable_compression,
|
||||
});
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -197,9 +197,9 @@ copy_buffer_to_image(struct radv_cmd_buffer *cmd_buffer,
|
|||
.baseArrayLayer = region->imageSubresource.baseArrayLayer,
|
||||
.layerCount = region->imageSubresource.layerCount,
|
||||
});
|
||||
img_bsurf.disable_compression = true;
|
||||
}
|
||||
img_bsurf.format = vk_format_for_size(vk_format_get_blocksize(img_bsurf.format));
|
||||
img_bsurf.current_layout = VK_IMAGE_LAYOUT_GENERAL;
|
||||
}
|
||||
|
||||
struct radv_meta_blit2d_buffer buf_bsurf = {
|
||||
|
|
@ -364,9 +364,9 @@ copy_image_to_buffer(struct radv_cmd_buffer *cmd_buffer,
|
|||
.baseArrayLayer = region->imageSubresource.baseArrayLayer,
|
||||
.layerCount = region->imageSubresource.layerCount,
|
||||
});
|
||||
img_info.disable_compression = true;
|
||||
}
|
||||
img_info.format = vk_format_for_size(vk_format_get_blocksize(img_info.format));
|
||||
img_info.current_layout = VK_IMAGE_LAYOUT_GENERAL;
|
||||
}
|
||||
|
||||
struct radv_meta_blit2d_buffer buf_info = {
|
||||
|
|
@ -526,7 +526,7 @@ copy_image(struct radv_cmd_buffer *cmd_buffer,
|
|||
.layerCount = region->dstSubresource.layerCount,
|
||||
});
|
||||
b_dst.format = b_src.format;
|
||||
b_dst.current_layout = VK_IMAGE_LAYOUT_GENERAL;
|
||||
b_dst.disable_compression = true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue