gfxstream: Update snapshot decoder to handle imageless framebuffer

When `VkFramebufferCreateInfo::flags` has
`VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT`,
`VkFramebufferCreateInfo::pAttachments` should be ignored.

Test: cvd create \
    --gpu_mode=gfxstream_guest_angle_host_swiftshader \
    --gpu_renderer_features="VulkanSnapshots:enabled"

Reviewed-by: Marcin Radomski <dextero@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35580>
This commit is contained in:
Jason Macnak 2025-06-13 15:17:31 -07:00 committed by Marge Bot
parent 0c1390acfb
commit 191fe7e4c4

View file

@ -226,10 +226,12 @@ def extract_deps_vkCreateGraphicsPipelines(param, access, lenExpr, api, cgen):
def extract_deps_vkCreateFramebuffer(param, access, lenExpr, api, cgen):
cgen.stmt("mReconstruction.addHandleDependency((const uint64_t*)%s, %s, (uint64_t)(uintptr_t)%s)" % \
(access, lenExpr, "unboxed_to_boxed_non_dispatchable_VkRenderPass(pCreateInfo->renderPass)"))
cgen.beginIf("(pCreateInfo->flags & VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT) == 0")
cgen.beginFor("uint32_t i = 0", "i < pCreateInfo->attachmentCount" , "++i")
cgen.stmt("mReconstruction.addHandleDependency((const uint64_t*)%s, %s, (uint64_t)(uintptr_t)%s)" % \
(access, lenExpr, "unboxed_to_boxed_non_dispatchable_VkImageView(pCreateInfo->pAttachments[i])"))
cgen.endFor()
cgen.endIf();
def extract_deps_vkBindImageMemory(param, access, lenExpr, api, cgen):
cgen.stmt("mReconstruction.addHandleDependency((const uint64_t*)%s, %s, (uint64_t)(uintptr_t)%s, VkReconstruction::BOUND_MEMORY)" % \