validation layer: Invalid usage flag for VkImage 0x5d11410000000004[] used by vkCmdCopyImageToBuffer

在运行Vulkan项目时,命令行界面出现了如下所示问题:

validation layer: Invalid usage flag for VkImage 0x5d11410000000004[] used by vkCmdCopyImageToBuffer(). In this case, VkImage should have VK_IMAGE_USAGE_TRANSFER_SRC_BIT set during creation. The Vulkan spec states: srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkCmdCopyImageToBuffer-srcImage-00186)
validation layer: Submitted command buffer expects VkImage 0x5d11410000000004[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.

简单分析应该是验证层检测到command buffer中的VkImage类型存在问题,所以报出了上述的错误,博主目前正在学习Vulkan的阶段,暂时还不能从代码上解决问题,于是乎想起了Vulkan的一个特性“Vulkan为了追求更高的执行效率,将各种错误的检查设计为可拔插模式。开发人员可以在开发调试时打开所需的错误检查项目,在发布时关闭错误检查项目,以达到更好的性能(OpenGL的状态机会在运行时自动进行错误检查且不可关闭)”(《Vulkan开发实战详解》P2 吴亚峰 编著)。

解决方案:

博主将调试模式修改成了【Release】,如下图一;运行项目,如有报错可以清理一下解决方案(右键点击解决方案->清理解决方案),这样可以暂时忽略掉一些错误,保证项目可以运行。

图一

实际上,这有点掩耳盗铃的意思,博主还需要继续深入学习Vulkan的相关资料,从根本上解决这个问题~!干巴爹!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值