glGenerateMipmap需要哪种内存屏障?

我已经使用GL_ARB_shader_image_load_store写入了纹理的第一个mipmap级别。 该文档声明我需要调用glMemoryBarrier,然后才能在其他操作中使用此映像的内容,以便适当刷新缓存。

例如,在我执行glTexSubImage2D操作之前,我需要发出GL_TEXTURE_UPDATE_BARRIER_BIT,并且在使用对纹理进行采样的着色器发出绘图调用之前,我需要发出GL_TEXTURE_FETCH_BARRIER_BIT。

但是,在确保glGenerateMipmap将使用最近写入的数据之前,需要先发布哪些屏障?


那里...没有答案。

对于这种特殊情况,OpenGL 4.5规范根本没有答案。 没有显式或隐式地允许glGenerateMipmap工作的内存屏障。 而glGenerateMipmap的定义并未指定实现可能用于生成这些glGenerateMipmap的特定操作。

您在OpenGL规范中发现了一个不错的漏洞。 希望他们能在某个时候解决它。


更新:根据错误报告,桌面卡上的当前行为是, glGenerateMipmap不需要任何形式的显式同步。 也就是说,驾驶员将产生任何需要的障​​碍来确保其正常工作。

这也是他们打算采取的行为,他们是否应该在规范中予以澄清。

链接地址: http://www.djcxy.com/p/21453.html

上一篇: Which memory barrier does glGenerateMipmap require?

下一篇: desc table in mysql say Null is No but default is NULL?