буфер хранения только для чтения в OpenGL ES и Spir-V - PullRequest
0 голосов
/ 21 февраля 2019

В 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
    };

Но какукажите только для чтения в 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 |
----------------------------------------------

1 Ответ

0 голосов
/ 21 февраля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...