【发布时间】:2017-11-21 23:33:10
【问题描述】:
在桌面 OpenGL 中,众所周知,切换上下文会导致一些开销损失,尤其是您必须重新加载/重新绑定内存中的一些对象(纹理等)。
当您在 WebGL 中的不同画布元素之间移动时,是否会发生相同的上下文切换惩罚?是否有任何 webgl 对象可以在一页上的画布元素之间共享?
【问题讨论】:
-
"尤其是你必须重新加载/重新绑定内存中的一些对象(纹理等)。" 不正确。上下文保留在其中设置的所有状态。现在,如果上下文被destroyed,那么是的,你必须恢复那个状态。
-
不,实际上具有共享对象的上下文具有各种状态问题,因为它们共享对象的状态。我知道,因为我必须在他们周围工作。我也知道一些驱动程序在切换内容时有很大的开销。我也知道这一点,因为我们的解决方案(在 Chrome 中)是在该特定 GPU 的一个实际上下文之上虚拟化多个上下文。
标签: javascript canvas webgl