gpt4 book ai didi

c++ - 提交的命令缓冲区上的 CoreValidation-DrawState-InvalidImageLayout 错误

转载 作者:行者123 更新时间:2023-11-28 01:23:24 26 4
gpt4 key购买 nike

我不明白为什么会出现这个错误

Message: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object: 0x55f38f345890 (Type = 6) | Submitted command buffer expects image 0x1e (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL--instead, image 0x1e's current layout is VK_IMAGE_LAYOUT_PRESENT_SRC_KHR.

我正在使用命令缓冲区将图像从帧缓冲区 blit 到当前当前图像,就像这样

    command_buffer.transitionImageLayout(
framebuffer_image, ImageLayout::COLOR_ATTACHMENT_OPTIMAL, ImageLayout::TRANSFERT_SRC_OPTIMAL);

command_buffer.transitionImageLayout(
current_image, ImageLayout::PRESENT_SRC, ImageLayout::TRANSFERT_DST_OPTIMAL);

command_buffer.blitImage(
framebuffer_image, current_image, framebuffer_image.extent(), m_extent);

command_buffer.transitionImageLayout(
framebuffer_image, ImageLayout::TRANSFERT_SRC_OPTIMAL, ImageLayout::COLOR_ATTACHMENT_OPTIMAL);

command_buffer.transitionImageLayout(
current_image, ImageLayout::TRANSFERT_DST_OPTIMAL, ImageLayout::PRESENT_SRC);

错误在命令缓冲区提交时触发

我激活了 VK_LAYER_LUNARG_api_dump 层,我得到了这个:

https://pastebin.com/AFyePUpM

最佳答案

错误信息非常简单。

您首先在命令缓冲区中将图像用作 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL。我们可以看到并验证:

command_buffer.transitionImageLayout( framebuffer_image, ImageLayout::COLOR_ATTACHMENT_OPTIMAL//等

该错误通知您图片位于 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR 中。这是如何发生的取决于您的其余代码。您之前必须(不小心)将图像转换为该布局。这将通过一些先前的 vkCmdPipelineBarrier,或通过 renderpass finalLayout

(或者不太可能在验证层中存在错误。在这种情况下,将其报告给 KhronosGroup/Vulkan-ValidationLayers。)

关于c++ - 提交的命令缓冲区上的 CoreValidation-DrawState-InvalidImageLayout 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108583/

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