问题标签 [validation-layers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Vulkan 队列等待无法发出信号的信号量
验证错误:
此错误发生在 GraphicsQueue 提交函数中。这是我必须修复的最后一个错误。我不知道下一步该做什么。
我在这里做错了什么?
或者错误的本质可能不在这个函数中?
binding - 绑定图像而不在 Vulkan 中全部使用它们
我试图为我的 vulkan 游戏引擎创建一个绽放效果。 为了实现这一点,我使用了几个 bulring pass,在每一个中我从一个图像中读取并将一个稍微模糊的图片渲染/写入另一个。在每次绘制过程之后,我交换这些图像的角色(并使用障碍),这意味着 - 一个渲染目标变成了着色器资源,而用作着色器资源的那个变成了目标。 我将这两个图像绑定在同一个描述符集上保存不必要的“VkBindDescriptorSet”调用,但验证层告诉我,如果我想绑定图像的描述符,所有图像的布局必须是“VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL”,即使着色器在任何给定时间仅使用/读取其中一个(着色器仅从当前处于“VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL”状态的着色器中读取)。这是对验证层的过度谨慎吗?或者绑定实际上失败了。
当我使用 DirectX12 时,我没有这个调试器问题!
我会很高兴得到答案或解决方案的想法,我对我的英语感到抱歉。
c++ - Vulkan 图像不兼容,有没有很好的方法来检查哪些参数不兼容?
我的验证错误返回以下错误:
我确切地知道代码中导致这种情况的位置,但是我不知道哪个参数组合有问题。有没有办法让司机指出:
“您的图像格式 x 与使用类型 y 不兼容”或类似的东西?
vulkan - 顶点属性 0 的 Vulkan 无效的 attribAddress 对齐
我真的不明白验证错误是什么意思。中的顶点着色器属性没有对齐要求VkPhysicalDeviceLimits
。
这是完整的错误:[2022-02-07.20:42:38]:验证错误:[VUID-vkCmdDrawIndexed-None-02721] 对象 0:句柄 = 0xfef35a00000000a0,类型 = VK_OBJECT_TYPE_BUFFER;对象 1:句柄 = 0xa56ac00000000d4,类型 = VK_OBJECT_TYPE_PIPELINE;| 消息 ID = 0x24afafc5 | vkCmdDrawIndexed:顶点属性 0、VK_FORMAT_R32G32B32_SFLOAT、来自 VkPipeline 0xa56ac00000000d4[] 和顶点 VkBuffer 0xfef35a00000000a0[] 的 attribAddress 对齐无效。Vulkan 规范规定:对于给定的顶点缓冲区绑定,获取的任何属性数据都必须完全包含在相应的顶点缓冲区绑定中,如顶点输入描述 ( https://vulkan.lunarg.com/doc/view/1.2. 198.1/windows/1.2-extensions/vkspec.html#VUID-vkCmdDrawIndexed-None-02721)
这是我的着色器。
更新 1:
更新 2: 此代码确实渲染,但是一些几何图形被移动了。