Opengl硬件加速器在非活动期后休眠

Opengl硬件加速器在非活动期后休眠,opengl,Opengl,我正在开发一个基于Opengl的2D CAD软件,该软件需要大量使用硬件Opengl Accelerator(每秒推动2.5亿个顶点)。这是我的问题。。。。每当视口停滞超过10秒时,Opengl加速器(本例中为Geforce 9800 GT)将进入非活动模式。当视口在非活动时段后再次渲染时,我将获得正常帧速率的1/4,这将持续3-4秒,然后3D加速器将唤醒并全速启动 问题: 如何防止这种情况发生 有没有Opengl方法可以防止GPU进入非活动模式 谢谢你的回复 Gary有几种方法可以让GPU保持

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

问题:

  • 如何防止这种情况发生
  • 有没有Opengl方法可以防止GPU进入非活动模式
  • 谢谢你的回复


    Gary

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

    可能您不想看到此图形,因此请创建一个新的帧缓冲区对象,创建一个小RGBA纹理(例如一侧256),然后将纹理附加到颜色附着点0

    当您想让GPU保持忙碌时,请将其绘制到屏幕外缓冲区


    这都是假设你不能,例如,只是改变你的引导参数或控制面板设置来调节卡上的电源管理行为。每个操作系统在这里都有不同的语义。

    您如何知道加速器处于非活动状态?对我来说,这听起来不像是openGL问题,更像是卡片问题。您的卡/驱动程序是否有一些节能措施?