imageStore () операция над размерами, превышающими размер буфера - PullRequest
1 голос
/ 10 марта 2019

У меня есть вычислительный шейдер, в котором у меня есть буфер uimage2d и операции imageStore () с этим буфером.Я хочу знать, что было бы поведение, если я пишу в местах за пределами размера буфера.Будет ли эффект обтекания?Или поведение зависит от водителя?Или это будет неопределенным, и что-нибудь может случиться?

1 Ответ

1 голос
/ 11 марта 2019

Согласно спецификации, доступ к текселю, который не существует, не имеет никакого эффекта.

См. Спецификация основного профиля API OpenGL 4.6 - 8.26.НАГРУЗКА И МАГАЗИНЫ ИЗОБРАЖЕНИЯ ТЕКСТУРЫ ;стр. 193:

Если отдельный тексель, определенный для загрузки изображения, сохранения или элементарной операции, не существует, доступ считается недействительным.Неверная загрузка изображения вернет ноль. Неверные хранилища изображений не будут иметь эффекта .Недопустимая атомика изображения не будет обновлять текстуру, привязанную к блоку изображения, и вернет ноль. Доступ считается недействительным, если:

[...]

  • выбранный тексель не существует
...