radv: fix computing the number of color samples if no attachments
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 20 Jan 2022 22:49:08 +0000 (23:49 +0100)
committerMarge Bot <emma+marge@anholt.net>
Fri, 21 Jan 2022 09:38:37 +0000 (09:38 +0000)
When no color attachments, the rasterization samples should be used.

Fixes: 0222dace909 ("radv: Support VK_KHR_dynamic_rendering for pipeline creation.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5830
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14642>

src/amd/vulkan/radv_pipeline.c

index fc4cde3..17332ed 100644 (file)
@@ -870,7 +870,7 @@ radv_pipeline_color_samples(const VkGraphicsPipelineCreateInfo *pCreateInfo)
       vk_find_struct_const(pCreateInfo->pNext, ATTACHMENT_SAMPLE_COUNT_INFO_AMD);
    const VkPipelineRenderingCreateInfoKHR *render_create_info =
       vk_find_struct_const(pCreateInfo->pNext, PIPELINE_RENDERING_CREATE_INFO_KHR);
-   if (sample_info && render_create_info) {
+   if (sample_info && render_create_info && sample_info->colorAttachmentCount > 0) {
       unsigned samples = 1;
       for (uint32_t i = 0; i < sample_info->colorAttachmentCount; ++i) {
          if (render_create_info->pColorAttachmentFormats[i] != VK_FORMAT_UNDEFINED) {