mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
v3dv: honor render area in subpass resolve fallback
When falling back to handling subpass resolves via separate image resolves we were resolving the entire attachment instead of limiting the resolve to the render area defined for the render pass. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20331>
This commit is contained in:
parent
9ac053e0a2
commit
ce94d3e48d
1 changed files with 5 additions and 3 deletions
|
|
@ -876,6 +876,8 @@ cmd_buffer_emit_resolve(struct v3dv_cmd_buffer *cmd_buffer,
|
|||
struct v3dv_image_view *dst_iview =
|
||||
cmd_buffer->state.attachments[dst_attachment_idx].image_view;
|
||||
|
||||
const VkRect2D *ra = &cmd_buffer->state.render_area;
|
||||
|
||||
VkImageResolve2 region = {
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
|
||||
.srcSubresource = {
|
||||
|
|
@ -884,15 +886,15 @@ cmd_buffer_emit_resolve(struct v3dv_cmd_buffer *cmd_buffer,
|
|||
src_iview->vk.base_array_layer,
|
||||
src_iview->vk.layer_count,
|
||||
},
|
||||
.srcOffset = { 0, 0, 0 },
|
||||
.srcOffset = { ra->offset.x, ra->offset.y, 0 },
|
||||
.dstSubresource = {
|
||||
aspect,
|
||||
dst_iview->vk.base_mip_level,
|
||||
dst_iview->vk.base_array_layer,
|
||||
dst_iview->vk.layer_count,
|
||||
},
|
||||
.dstOffset = { 0, 0, 0 },
|
||||
.extent = src_iview->vk.image->extent,
|
||||
.dstOffset = { ra->offset.x, ra->offset.y, 0 },
|
||||
.extent = { ra->extent.width, ra->extent.height, 1 },
|
||||
};
|
||||
|
||||
struct v3dv_image *src_image = (struct v3dv_image *) src_iview->vk.image;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue