在PMB中使用GL_MAP_COHERENT_BIT时,是否需要隔离/同步



我看到了关于它的矛盾文档。在Khronos文档中,我是否需要glFinish(或变体(有点模糊。我目前正在对缓冲区进行三重缓冲以避免这个问题(因为我动态地使用PMB(,但这显然会消耗大量内存。我知道该标志使GPU和CPU都能自动看到数据更改,但不知道是否必须同步写入和读取。我需要知道我是否真的需要同步GL_MAP_COHERENT_BIT标志,或者是否存在隐式同步。

没有隐式同步,因为驱动程序/GPU不知道您何时访问映射的指针。毕竟,这就是持久映射的意义所在。

是的,您仍然需要同步。如果你想读GPU写的东西。。。你需要GPU在你可以读取之前写入它。反之亦然;您不想写入GPU正在读取的数据。

所以使用同步。如果你是三重缓冲,等待围栏呼叫很可能会很快被拒绝。

最新更新