Я только что прочитал следующую презентацию о AMD_pinned_memory.
Однако у меня есть вопрос относительно синхронизации переводов.
При копировании данных из буфера в текстуру они показывают следующий пример (на страницах 12):
Копирование данных из буфера в текстуру
// Bind buffer as unpack buffer to copy data into a texture object
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, m_pBuffer[m_uiBufferIdx]);
// Copy pinned memory to texture
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_uiTexWidth, m_uiTexHeight, m_nExtFormat, m_nType, NULL);
// Insert Sync object to check for completion
m_UnPackFence= glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
Когда и как мне ждать m_UnPackFence
? Нужно ли вызывать glClientWaitSync
или glWaitSync
непосредственно перед использованием текстуры или чего-то еще?