glsl - Vulkan SSBO 顶点着色器的 vertexPipelineStoresAndAtomics 警告
问题描述
我想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。
推荐阅读
- javascript - 如何使用 Javascript/Jquery 更改或关闭 css 属性?
- node.js - 节点 pg pool.query 没有调用我的回调
- pandas - 对过滤后的 DataFrame 或 Series 进行切片(使用负索引切片观察到的结果)
- javascript - 如何根据 curl 请求在 Node 中发出 http post 请求?
- mysql - sql锁表多服务器一数据库
- python - How to parse and print a matching search in a line of text, plus the next 2 lines after a match in Python
- amazon-web-services - 是否可以使用无服务器离线测试 lambda 限制?
- c++ - 如何打印出 QuickSort 切换和检查的次数?
- asp.net-core - 编辑未在 URL 上传递 ID 的记录。我喜欢在编辑 GUI 的输入字段中指定 ID
- java - 如何在 Reactive Spring Data 中使用来自其他对象的引用来获取对象?