2

我想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只是供非计算着色器写入,但我只读取数据,所以不确定它为什么对我大喊大叫。此外,它似乎仍在工作,所以这是一个假阴性错误还是我做错了什么?

4

1 回答 1

2

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

于 2018-05-24T22:57:49.913 回答