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