nvk: Plumb attachment flags through to MSAA resolve
Reviewed-by: Mel Henning <mhenning@darkrefraction.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38094>
This commit is contained in:
@@ -138,6 +138,8 @@ struct nvk_descriptor_state {
|
||||
} while (0)
|
||||
|
||||
struct nvk_attachment {
|
||||
VkRenderingAttachmentFlagBitsKHR flags;
|
||||
|
||||
VkFormat vk_format;
|
||||
struct nvk_image_view *iview;
|
||||
|
||||
|
||||
@@ -803,6 +803,7 @@ nvk_attachment_init(struct nvk_attachment *att,
|
||||
|
||||
VK_FROM_HANDLE(nvk_image_view, iview, info->imageView);
|
||||
*att = (struct nvk_attachment) {
|
||||
.flags = vk_get_rendering_attachment_flags(info),
|
||||
.vk_format = iview->vk.format,
|
||||
.iview = iview,
|
||||
};
|
||||
@@ -1505,12 +1506,19 @@ nvk_CmdEndRendering(VkCommandBuffer commandBuffer)
|
||||
|
||||
/* Translate render state back to VK for meta */
|
||||
VkRenderingAttachmentInfo vk_color_att[NVK_MAX_RTS];
|
||||
VkRenderingAttachmentFlagsInfoKHR vk_color_att_flags[NVK_MAX_RTS];
|
||||
for (uint32_t i = 0; i < render->color_att_count; i++) {
|
||||
if (render->color_att[i].resolve_mode != VK_RESOLVE_MODE_NONE)
|
||||
need_resolve = true;
|
||||
|
||||
vk_color_att_flags[i] = (VkRenderingAttachmentFlagsInfoKHR) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR,
|
||||
.flags = render->color_att[i].flags,
|
||||
};
|
||||
|
||||
vk_color_att[i] = (VkRenderingAttachmentInfo) {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
|
||||
.pNext = &vk_color_att_flags[i],
|
||||
.imageView = nvk_image_view_to_handle(render->color_att[i].iview),
|
||||
.imageLayout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
.resolveMode = render->color_att[i].resolve_mode,
|
||||
@@ -1520,8 +1528,13 @@ nvk_CmdEndRendering(VkCommandBuffer commandBuffer)
|
||||
};
|
||||
}
|
||||
|
||||
const VkRenderingAttachmentFlagsInfoKHR vk_depth_att_flags = {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR,
|
||||
.flags = render->depth_att.flags,
|
||||
};
|
||||
const VkRenderingAttachmentInfo vk_depth_att = {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
|
||||
.pNext = &vk_depth_att_flags,
|
||||
.imageView = nvk_image_view_to_handle(render->depth_att.iview),
|
||||
.imageLayout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
.resolveMode = render->depth_att.resolve_mode,
|
||||
@@ -1532,8 +1545,13 @@ nvk_CmdEndRendering(VkCommandBuffer commandBuffer)
|
||||
if (render->depth_att.resolve_mode != VK_RESOLVE_MODE_NONE)
|
||||
need_resolve = true;
|
||||
|
||||
const VkRenderingAttachmentFlagsInfoKHR vk_stencil_att_flags = {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR,
|
||||
.flags = render->stencil_att.flags,
|
||||
};
|
||||
const VkRenderingAttachmentInfo vk_stencil_att = {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
|
||||
.pNext = &vk_stencil_att_flags,
|
||||
.imageView = nvk_image_view_to_handle(render->stencil_att.iview),
|
||||
.imageLayout = VK_IMAGE_LAYOUT_GENERAL,
|
||||
.resolveMode = render->stencil_att.resolve_mode,
|
||||
|
||||
Reference in New Issue
Block a user