【发布时间】:2011-06-24 11:53:15
【问题描述】:
我的 .Net Winforms 应用程序在我的主窗口中创建了三个 OpenGL 渲染上下文,然后允许用户弹出其他窗口,其中每个窗口还有两个渲染上下文(使用拆分器)。在第 26 个渲染上下文左右,事情开始变得非常缓慢。新的渲染上下文需要 5 到 10 秒,而不是花费几毫秒来渲染一帧。它仍然有效,只是真的很慢!并且 OpenGL 不会返回任何错误 (glGetError)。
其他窗口工作正常。只是在一定数量后新的渲染上下文会变慢。如果我关闭这些窗口,一切都很好——直到我重新打开足够多的窗口以超过限制。每个渲染上下文都有自己的线程,每个线程都使用一个简单的着色器。当我上传纹理时,似乎发生了减速。但是纹理的大小对我可以创建多少上下文没有影响,OpenGL 窗口的大小也没有。
我在 nVidia 卡上运行,并且在具有不同内存量和不同驱动程序版本的不同 GPU 上看到了这一点。这是怎么回事?应用程序可以创建多少渲染上下文是否有限制?
是否有其他人的应用程序同时具有大量渲染上下文?
【问题讨论】:
-
另请参阅community.amd.com/thread/184325 以获取有关 AMD 的参考资料,我感觉 AMD 数量很少(+/-20 ctx?)