From 4a8fdb8ee3013c7184ee288993eb1c5f78d43351 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 2 Mar 2020 11:50:44 +0100 Subject: [PATCH] v3dv: fix framebuffer format when computing fragment shader key Part-of: --- src/broadcom/vulkan/v3dv_pipeline.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c index 689cdef333c..5b0ff8554ec 100644 --- a/src/broadcom/vulkan/v3dv_pipeline.c +++ b/src/broadcom/vulkan/v3dv_pipeline.c @@ -585,17 +585,17 @@ pipeline_populate_v3d_fs_key(struct v3d_fs_key *key, */ key->swap_color_rb = false; + const struct v3dv_render_pass *pass = + v3dv_render_pass_from_handle(pCreateInfo->renderPass); const struct v3dv_subpass *subpass = p_stage->pipeline->subpass; for (uint32_t i = 0; i < subpass->color_count; i++) { - if (subpass->color_attachments[i].attachment == VK_ATTACHMENT_UNUSED) + const uint32_t att_idx = subpass->color_attachments[i].attachment; + if (att_idx == VK_ATTACHMENT_UNUSED) continue; key->cbufs |= 1 << i; - /* FIXME: in order to know this we need to access to the color - * framebuffer. Still not in place. Using default hardcode value. - */ - VkFormat fb_format = VK_FORMAT_R8G8B8A8_UNORM; + VkFormat fb_format = pass->attachments[att_idx].desc.format; enum pipe_format fb_pipe_format = vk_format_to_pipe_format(fb_format); /* If logic operations are enabled then we might emit color reads and we