независимая от порядка прозрачность - барьер памяти - PullRequest
0 голосов
/ 08 мая 2019

Пример, который я читал, взят из красной книги opengl.Исходный код находится здесь: https://github.com/openglredbook/examples/blob/master/src/11-oit/11-oit.cpp

Я читал о хранилище загрузки изображений, имеет несогласованный доступ к памяти и не гарантирует упорядочение между 2 командами рендеринга.https://www.khronos.org/opengl/wiki/Memory_Model Когда я читаю исходный код этого алгоритма, я не вижу упоминания о барьере памяти.Так нужно ли мне вызывать барьер памяти между командой рендеринга, которая сортирует фрагменты и сохраняет их, и командой рендеринга, которая рендерит квад?

1 Ответ

4 голосов
/ 08 мая 2019

Для вашего общего вопроса, да, вам нужен явный барьер памяти между двумя операциями.

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

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