0

在 OpenGL ES 着色语言中,着色器存储缓冲区对象 (SSBO) 可以用限定符readonlywriteonly. OpenGL ES Shading Language 3.1 版规范
的第 4.9 节(内存访问限定符):

着色器存储块、在着色器存储块中声明的变量和声明为图像类型的变量(在其关键字中带有“image”的基本不透明类型)可以进一步使用以下一个或多个内存限定符进行限定:...(A table已列出)

所以我可以在 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 部分,访问限定符中,它说:

由 OpTypeImage 和 OpTypePipe 使用。

这是否意味着,在 spir-v 中,SSBO 不能指定为只读?我不认为 SSBO 属于 OpTypeImage 或 OpTypePipe 类型。

---------------------------------------------
 Resource Type  |  Storage Class |    Type       
---------------------------------------------
  Storage Buffer|  Uniform       |
                |----------------|  OpTypeStruct
                | Storage Buffer |
----------------------------------------------
4

1 回答 1

1

适当的装饰是不直观的NonWritableNonReadable

于 2019-02-21T05:53:52.170 回答