diff --git a/.pick_status.json b/.pick_status.json index 16754322229..eabdd93bc31 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -604,7 +604,7 @@ "description": "vulkan: mark RP attachments as invalid when no rendering create info", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/vulkan/runtime/vk_graphics_state.c b/src/vulkan/runtime/vk_graphics_state.c index 2c6415ee796..e80fca11028 100644 --- a/src/vulkan/runtime/vk_graphics_state.c +++ b/src/vulkan/runtime/vk_graphics_state.c @@ -1232,6 +1232,7 @@ vk_render_pass_state_init(struct vk_render_pass_state *rp, *rp = (struct vk_render_pass_state) { .depth_attachment_format = VK_FORMAT_UNDEFINED, .stencil_attachment_format = VK_FORMAT_UNDEFINED, + .attachments = MESA_VK_RP_ATTACHMENT_INFO_INVALID, }; if (info->renderPass != VK_NULL_HANDLE && driver_rp != NULL) { @@ -1269,7 +1270,6 @@ vk_render_pass_state_init(struct vk_render_pass_state *rp, */ if (info->renderPass == VK_NULL_HANDLE && !(lib & VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT)) { - rp->attachments = MESA_VK_RP_ATTACHMENT_INFO_INVALID; return; } @@ -1303,6 +1303,8 @@ vk_render_pass_state_init(struct vk_render_pass_state *rp, rp->depth_stencil_attachment_samples = asc_info->depthStencilAttachmentSamples; } + rp->attachments = 0; + for (uint32_t i = 0; i < r_info->colorAttachmentCount; i++) { if (rp->color_attachment_formats[i] != VK_FORMAT_UNDEFINED) rp->attachments |= MESA_VK_RP_ATTACHMENT_COLOR_BIT(i);