我试图为我的 vulkan 游戏引擎创建一个绽放效果。 为了实现这一点,我使用了几个 bulring pass,在每一个中我从一个图像中读取并将一个稍微模糊的图片渲染/写入另一个。在每次绘制过程之后,我交换这些图像的角色(并使用障碍),这意味着 - 一个渲染目标变成了着色器资源,而用作着色器资源的那个变成了目标。 我将这两个图像绑定在同一个描述符集上保存不必要的“VkBindDescriptorSet”调用,但验证层告诉我,如果我想绑定图像的描述符,所有图像的布局必须是“VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL”,即使着色器在任何给定时间仅使用/读取其中一个(着色器仅从当前处于“VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL”状态的着色器中读取)。这是对验证层的过度谨慎吗?或者绑定实际上失败了。
当我使用 DirectX12 时,我没有这个调试器问题!
我会很高兴得到答案或解决方案的想法,我对我的英语感到抱歉。