From 96a9d0d585baadf4332663bcfdb9a5bc6cdebdb6 Mon Sep 17 00:00:00 2001 From: Qining Lu Date: Thu, 13 Dec 2018 10:10:25 -0500 Subject: [PATCH] Vulkan: Fix the attachment image layout tracking The loadAttachment and storeAttachment subroutine should not be labelled with @spy_disabled, as we need to track the attachments' layout --- gapis/api/vulkan/api/renderpass_framebuffer.api | 2 -- gapis/api/vulkan/state_rebuilder.go | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/gapis/api/vulkan/api/renderpass_framebuffer.api b/gapis/api/vulkan/api/renderpass_framebuffer.api index 34149f373a..51f259e3ef 100644 --- a/gapis/api/vulkan/api/renderpass_framebuffer.api +++ b/gapis/api/vulkan/api/renderpass_framebuffer.api @@ -403,7 +403,6 @@ cmd void vkCmdEndRenderPass( } } -@spy_disabled sub void loadImageAttachment(u32 attachmentID) { VK_ATTACHMENT_UNUSED := as!u32(0xFFFFFFFF) if attachmentID != VK_ATTACHMENT_UNUSED { @@ -426,7 +425,6 @@ sub void loadImageAttachment(u32 attachmentID) { } } -@spy_disabled sub void storeImageAttachment(u32 attachmentID) { VK_ATTACHMENT_UNUSED := as!u32(0xFFFFFFFF) if attachmentID != VK_ATTACHMENT_UNUSED { diff --git a/gapis/api/vulkan/state_rebuilder.go b/gapis/api/vulkan/state_rebuilder.go index 92e9fff40b..05c4f5f05f 100644 --- a/gapis/api/vulkan/state_rebuilder.go +++ b/gapis/api/vulkan/state_rebuilder.go @@ -1482,8 +1482,7 @@ func (sb *stateBuilder) createImage(img ImageObjectʳ, imgPrimer *imagePrimer) { attBits := VkImageUsageFlags(VkImageUsageFlagBits_VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VkImageUsageFlagBits_VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) storageBit := VkImageUsageFlags(VkImageUsageFlagBits_VK_IMAGE_USAGE_STORAGE_BIT) - isDepth := (img.Info().Usage() & VkImageUsageFlags(VkImageUsageFlagBits_VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)) != 0 - primeByBufCopy := (img.Info().Usage()&transDstBit) != 0 && (!isDepth) + primeByBufCopy := (img.Info().Usage() & transDstBit) != 0 primeByRendering := (!primeByBufCopy) && ((img.Info().Usage() & attBits) != 0) primeByImageStore := (!primeByBufCopy) && (!primeByRendering) && ((img.Info().Usage() & storageBit) != 0) primeByPreinitialization := (!primeByBufCopy) && (!primeByRendering) && (!primeByImageStore) && (img.Info().Tiling() == VkImageTiling_VK_IMAGE_TILING_LINEAR) && (img.Info().InitialLayout() == VkImageLayout_VK_IMAGE_LAYOUT_PREINITIALIZED)