zink: break out color rt layout calc

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17640>
This commit is contained in:
Mike Blumenkrantz 2022-07-15 16:41:28 -04:00 committed by Marge Bot
parent 903060787e
commit c602e877a3
1 changed files with 7 additions and 1 deletions

View File

@ -44,6 +44,12 @@ get_rt_loadop(const struct zink_rt_attrib *rt, bool clear)
VK_ATTACHMENT_LOAD_OP_LOAD;
}
static VkImageLayout
get_color_rt_layout(const struct zink_rt_attrib *rt)
{
return rt->fbfetch ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
}
static VkImageLayout
get_zs_rt_layout(const struct zink_rt_attrib *rt)
{
@ -85,7 +91,7 @@ create_render_pass2(struct zink_screen *screen, struct zink_render_pass_state *s
attachments[i].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
attachments[i].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
/* if layout changes are ever handled here, need VkAttachmentSampleLocationsEXT */
VkImageLayout layout = rt->fbfetch ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
VkImageLayout layout = get_color_rt_layout(rt);
attachments[i].initialLayout = layout;
attachments[i].finalLayout = layout;
color_refs[i].sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2;