在OpenGL ES着色语言中,着色器存储缓冲区对象(SSBO)可以使用限定符readonly或writeonly进行修饰。
OpenGL ES阴影语言版本3.1规范的4.9节(内存访问限定符)
着色存储块、在着色存储块中声明的变量和声明为图像类型的变量(基本的不透明类型,其关键字为“image”),可以使用以下一个或多个内存限定符进行进一步限定:.(列出了一个表)
所以我可以在opengl es着色器中得到这样的东西:
layout(std430, binding = 0) readonly buffer mybuffer {
a_struct_type myarray[]; //a_struct_type was defined before
};但是如何在spir-v中指定只读呢?
在spir-v规范 3.18节Access限定符中,它说:
由OpTypeImage和OpTypePipe使用。
这是否意味着,在spir-v中,SSBO不能指定为只读?我不认为SSBO属于OpTypeImage或OpTypePipe类型。
---------------------------------------------
Resource Type | Storage Class | Type
---------------------------------------------
Storage Buffer| Uniform |
|----------------| OpTypeStruct
| Storage Buffer |
----------------------------------------------发布于 2019-02-21 05:53:52
合适的装饰品是非直观的NonWritable和NonReadable。
https://stackoverflow.com/questions/54799985
复制相似问题