Opengl硬件加速器在不活动期间睡眠

时间:2010-10-20 17:12:20

标签: opengl

我正在研究基于Opengl的2D CAD软件,该软件需要大量使用硬件OpenGL加速器(有时每秒推动2.5亿个顶点)。这是我的问题....每当视口停滞超过10秒时,Opengl加速器(在这种情况下为Geforce 9800 GT)进入非活动模式。当在非活动时段之后再次渲染视口时,我获得正常帧速率的1/4,这将持续3-4秒,然后3D加速器唤醒并全速前进。

问题:

  1. 如何防止这种情况发生?
  2. 是否有Opengl方法阻止GPus进入非活动模式?
  3. 感谢您的回复。

    加里

1 个答案:

答案 0 :(得分:0)

有几种方法可以让GPU保持忙碌,但最有把握的方法是保证它正在做某事而不仅仅是推迟命令就是实际绘制一些东西。 glClear()和每个glDraw *命令构成实际的绘图命令。在绘制结束时抛出glFinish()以保证执行gl命令流。

据推测,您不希望看到此图形,因此创建一个新的帧缓冲对象,创建一个小的RGBA纹理(一边说256),然后将纹理附加到颜色附着点0。

如果你想让GPU忙于绘制这个屏幕外缓冲区。

这就是假设你不能仅仅改变你的boot-args或控制面板设置来调制卡上的电源管理行为。每个操作系统都有不同的语义。