Vulkan SSBO 顶点着色器的 vertexPipelineStoresAndAtomics 警告

vertexPipelineStoresAndAtomics warning for Vulkan SSBO vertex shader

我想在我的顶点着色器中使用 vec3 数组。我创建了

layout(binding = 1) readonly buffer MyBuffer {
   vec3 buf[];
} myBuffer;
...
vec test = myBuffer[gl_VertexIndex];

在我的 GLSL 中进行布局,然后 glslc 将其转移到我的 SPIR-V,其中有 NonWriteable 操作码。我做了所有 CPU 的辅助工作,使用描述符集和所有设置来设置它。数据似乎正确通过,但我通过验证层收到此警告

ERROR: [Validation] Code 15 : Object: VK_NULL_HANDLE (Type = 0) | Shader requires vertexPipelineStoresAndAtomics but is not enabled on the device

然后深入研究,我意识到 vertexPipelineStoresAndAtomics 只是供非计算着色器写入,但我只是在读取数据,所以不确定为什么它对我大喊大叫。而且它似乎还在工作,所以这是假阴性错误还是我做错了什么?

这是目前在验证套件中积极跟踪的错误。有关详细信息,请参阅 https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/2526