BGFX 和双缓冲

BGFX and double buffering

BGFX 是否在内部双缓冲所有内容?或者这是应用程序员的责任?

所有渲染关闭屏幕的 BGFX examples 似乎都没有创建双倍缓冲区。

我是否需要调用 createFrameBuffer() 两次,一次用于正面,一次用于背面,并交替渲染它们?

我想避免不必要的 GPU 停顿。在 OpenGL 中,我会通过 buffer orphaning 完成此操作。但我怀疑在 BGFX 中我可能必须更明确地执行此操作?

bgfx 中的瞬态缓冲区确实使用孤立。参见 code here, which is called here

如果您不使用瞬态数据,那么是的,我认为您必须更明确地使用它。

例如,“27-terrain”示例对顶点数据进行动态流处理,并允许您在运行时在多种模式之间切换。可以看到逻辑here。默认情况下每次只是 destroys/recreates 缓冲区。注意不同情况下的不同调用:createVertexBuffer vs createDynamicVertexBuffer.