【问题标题】:Vulkan Framebuffer conflict on attachments image usage附件图像使用上的 Vulkan 帧缓冲区冲突
【发布时间】:2016-12-09 21:26:08
【问题描述】:

当我尝试通过vkCreateFramebuffer 创建帧缓冲区时,我在调试报告回调中收到关于VkFramebufferCreateInfo 附件冲突的错误。它说我的 图像视图 在它们的图像使用方面存在冲突,而我不希望出现这个错误,因为通常其中一个必须是颜色附件,另一个必须是深度模板附件。

确切的错误信息是:

Framebuffer Attachment(0) 与图像的 IMAGE_USAGE 标志 (VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) 冲突。

我什至已经看过其他例子,它们完全一样。

我的源代码(Rust):
https://github.com/Hossein-Noroozpour/vulkust/blob/master/src/vulkan/swapchain.rs#L218

【问题讨论】:

    标签: attachment conflict framebuffer vulkan


    【解决方案1】:

    帧缓冲区中图像的使用由渲染通道定义。这意味着如果附件 0 用作渲染通道中的深度/模板,则需要使用 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT 创建图像

    这意味着您需要仔细检查传递给渲染通道创建的子通道描述,并确保您没有意外使用附件 0 作为深度。

    【讨论】:

    • 嗨,我的第一个附件是彩色图像,第二个是深度模板。如果您愿意,可以在这里查看我的代码:github.com/Hossein-Noroozpour/vulkust/blob/master/src/vulkan/…
    • @HosseinNoroozpour 我找不到你设置depth_reference.attachment(以及color_reference.attachment)的位置。 (在看到您的代码后怀疑现在发生了什么,更新了我的答案)。
    • @krOoze tnx 为您解答,目前我的代码运行良好,但我认为在不久的将来有很小的机会中断,如果没关系,我会保留这个问题作为悬而未决的问题,直到我确定为止。 (乍一看,我会接受你的回答。:D)
    • @HosseinNoroozpour 不用着急;验证这是否适用于您。但是,如果您遇到不同的错误,请不要重复使用 SO Q(创建一个新 Q,或者如果您觉得它会导致长时间的讨论,您可以访问 Khronos 论坛)。仅供参考,我正在将 SC 链接添加到您的 Q 文本中。
    【解决方案2】:

    好吧,我可以解释错误是如何产生的。如果有疑问,可以深入研究层源代码:
    https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/tree/master/layers

    它将在vkCreateFramebuffer()发布。

    它将检查提供的渲染通道及其子通道与图像视图。

    如果VkImageView 至少使用一次作为输入附件,则它预计VkImageViewVkImage 是使用VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT 创建的。

    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT 的颜色附件和VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT 的 DS 附件也是如此。

    检查您是否满足这些要求。
    层错误也是一回事。如果您正在运行最新版本并确认错误,则报告属于此处:
    https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues

    更新(查看您的源代码后):
    我看不到你在哪里设置depth_reference.attachment。您将其预初始化为 0,这可能意味着您将颜色附件指定为子通道的深度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      相关资源
      最近更新 更多