保持glMapBuffer指针处于活动状态



我目前正在使用OpenGL版本4.4,我对glMapBuffer函数有一个问题。在我使用的其他一些API中(例如DX12和VK(,您可以保持映射函数返回的指针处于活动状态,并使用单独的调用刷新内存,而不是取消分配该指针。

有没有一种方法可以让这个指针保持更长的时间并更新GPU内存,而不释放这个调用glUnmapBuffer的指针?

具有不可变存储的缓冲区对象(使用GL 4.4中的gl(Named)BufferStorage或ARB_buffer_storage(可以使用GL_MAP_PERSISTENT_BIT标志进行分配。这允许glMap(Named)BufferRange被赋予相同的标志,从而持久地映射缓冲器的存储的范围。

存储被持久映射的缓冲区可以用于许多缓冲区操作,而无需首先取消映射。然而,所有数据访问同步的责任现在都在用户身上。因此,请放心使用围栏和双重缓冲来访问/操作数据。

相关内容

最新更新