Буфер хранения только для чтения в OpenGL ES и Spir-V

В OpenGL ES Shading Language объект буфера хранилища шейдеров (SSBO) может быть украшен квалификатором readonly или же writeonly,
Раздел 4.9 (Спецификаторы доступа к памяти) спецификации OpenGL ES Shading Language версии 3.1:

Блоки хранения шейдеров, переменные, объявленные в блоках хранения шейдеров, и переменные, объявленные как типы изображений (основные непрозрачные типы с ключевым словом "изображение"), могут быть дополнительно квалифицированы одним или несколькими из следующих определителей памяти: ...(таблица в списке)

Таким образом, у меня может быть что-то в шейдере opengl es, как это:

layout(std430, binding = 0) readonly buffer mybuffer {
        a_struct_type myarray[];  //a_struct_type was defined before
    };

Но как указать readonly в spir-v?
В спецификации spir-v, раздел 3.18, Access Qualifier, написано:

Используется OpTypeImage и OpTypePipe.

Означает ли это, что в spir-v SSBO нельзя указывать только для чтения? Я не думаю, что SSBO попадает в тип OpTypeImage или OpTypePipe.

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

1 ответ

Решение

Соответствующие украшения не интуитивно NonWritable а также NonReadable,

Другие вопросы по тегам