coreValidation-drawState-Invalidimagelayout错误上的命令缓冲区错误
CoreValidation-DrawState-InvalidImageLayout error on submited command buffer
我无法弄清楚为什么我得到此错误
消息:[未分配的corevalidation-drawState-invalidimagelayout]对象:0x55F38F345890(type = 6)|提交命令缓冲区期望图像0x1e(subresource:expackMask 0x1数组层0,mip级别0)在布局中为vk_image_layout_layout_color_color_attachment_optimal-instead,image 0x1e当前的布局是vk_image_image_layout_layout_layout_pres_pres_pres_src_src_khr。
我正在使用命令缓冲区将图像从帧缓冲机爆炸到当前的图像,如
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 // etc
错误告诉您,图像在VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
中。发生的方式取决于您的其余代码。您必须在(偶然地)之前将图像过渡到该布局。那将是通过以前的vkCmdPipelineBarrier
或Renderpass finalLayout
。
(或较小的验证层中有一个错误。在这种情况下,将其报告给Khronosgroup/vulkan-validationlayers。)
您的framebuffer_image
来自Swapchain图像吗?如果是,似乎它仍在VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
布局中 - 可以通过更改第一行来解决该问题。
- 为什么我在leetcode上收到AddressSanitizer:地址0x602000000058上的堆缓冲区溢出错误
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 使用 strcat 获取缓冲区溢出错误
- Netbeans 10:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- 将缓冲区复制到剪贴板 [换行错误]
- CMake 错误:链接器命令失败,退出代码为 1 和 cpp.o 文件
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 如何修复 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- 添加符号 libgtest.so 错误:命令行中缺少 DSO
- Vulkan:为什么主命令缓冲区和辅助命令缓冲区都需要设置帧缓冲区和渲染过程
- 输出错误命令的条件语句
- 为什么错误 C6386 缓冲区溢出与 strsafe.h 字符串 Cch 函数
- 用于在 vulkan 中呈现的辅助命令缓冲区
- 我可以在命令缓冲区中多次记录 vkCmdPipelineBarrier 吗?
- 错误:“命令” /重复使用ASM挥发性之前的预期字符串字母
- coreValidation-drawState-Invalidimagelayout错误上的命令缓冲区错误
- Vulkan:在多个命令缓冲区中排列图像内存屏障
- 在mac上构建Google测试时出现链接错误(命令行)
- glfw3错误:命令行中缺少DSO
- 为什么我会在意外标记附近出现语法错误?命令行参数