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。
我想在我的顶点着色器中使用 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。