gpt4 book ai didi

framebuffer - 如何处理可呈现图像的布局?

转载 作者:行者123 更新时间:2023-12-05 00:55:41 33 4
gpt4 key购买 nike

一个像样的图像开始于 VK_IMAGE_LAYOUT_UNDEFINED但会是 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR在它们被呈现一次之后。

很多例子都做了一个过渡vkImagesVK_IMAGE_LAYOUT_PRESENT_SRC_KHR创建 vkSwapchain 后立即.这允许他们使用 VK_IMAGE_LAYOUT_PRESENT_SRC_KHRoldLayout . But doing the transition right after creation of the swapchain is not allowed.

Use of a presentable image must occur only after the image is returned by vkAcquireNextImageKHR, and before it is presented by vkQueuePresentKHR. This includes transitioning the image layout and rendering commands.



我有哪些选项可以正确处理交换链图像布局?

最佳答案

有3个选项。从最好到最坏的顺序(IMO):

  • 只需将 renderPass 中附件的 initialLayout 设置为 VK_IMAGE_LAYOUT_UNDEFINED或从 VK_IMAGE_LAYOUT_UNDEFINED 过渡每次。 This is allowed并且暗示您不关心图像中的数据。大多数情况下,您无论如何都会清除或完全覆盖图像。

    valid Usage [of VkImageMemoryBarrier]
    [...]

    • oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED or the current layout of the image region affected by the barrier
  • 跟踪哪些图像已经通过管道并选择 oldLayout相应地在记录 commandBuffer 时。
  • 在创建交换链后使用 vkAcquireNextImageKHR 进行转换和 vkQueuePresentKHR以确保应用程序在转换时拥有图像。无法保证您获得图像的顺序因此有可能永远不会返回一张图像。
  • 关于framebuffer - 如何处理可呈现图像的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524032/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com