首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >暗示GPU从空闲频率加速到全速

暗示GPU从空闲频率加速到全速
EN

Stack Overflow用户
提问于 2016-09-27 23:47:08
回答 2查看 182关注 0票数 0

在我的GPU应用程序中,OpenGL大部分时间都处于空闲状态,偶尔会刷新帧。我需要GPU在活动频率下立即运行时,缩放和平移的场景发生。

这就是我的问题-我的系统GPU上的大约需要100毫秒来感知活动,并从125 mhz空闲频率踢到900 mhz的活动频率-所以我的应用程序的用户将在100毫秒内感觉到15 fps,然后当GPU达到正常频率时,平滑地130 fps。

我的问题是,有没有一个标准的OpenGL方法可以在第一个新帧在一段时间不活动后被渲染之前,暗示“图形处理器”从空闲速度中唤醒?我更喜欢GPU从这个提示中唤醒,而不是工作负载感知(由于延迟)。

EN

回答 2

Stack Overflow用户

发布于 2016-09-28 01:09:23

我认为这个“提示”并不存在,即使是在扩展上,它也永远不会存在,因为GPU需要时间来“唤醒”,这不仅仅是工作负载检测延迟的问题。除非你能提前预测“唤醒”GPU的需要,否则你将无法以这种方式隐藏电源状态开关的延迟。

但是,有多种解决方案/变通方法:

  • 提高您的应用程序性能。如果工作负载较低,当enough.
  • Decrease长时间处于空闲状态时,即使在低功耗模式下也会产生GPU程序工作负载。有时,您可以控制输出的质量,将其减少几帧。这包括:使用较低的分辨率,停用抗锯齿,使用低多边形模型,使用更简单的着色器...
  • 使用不同的图形处理器。电源模式的切换时间取决于硬件,每个图形处理器在高功率状态下会有不同的characteristics.
  • Keep。如果程序不断地重新绘制,即使没有任何变化,GPU也将被迫在高功率状态下运行。当然,这并不节能。一些驱动程序(至少是Nvidia)可以由用户配置,以避免低功耗模式(因此您不需要一直重新绘制)。
票数 1
EN

Stack Overflow用户

发布于 2016-09-28 15:46:43

不是直接回答你的问题,而是一个愚蠢的建议(这样处理)

为什么需要130fps的CAD?

我的有固定的帧速率~30fps,使用双缓冲,所以如果场景没有改变,使用旧的缓冲区而不是完全渲染,突然移动或缩放没有明显的性能影响。

如果你是在每次缩放平移增量后重新绘制,那么这不是一个好方法(特别是在速度较慢的计算机上),最好是在视图或CAD数据的任何更改上设置一个bool _redraw,如果设置了_redraw,则在计时器中重画/重置。这一次,应用程序将闲置大部分不活跃的时间,当开始做事情时,仍然会足够快。如果你错过了几个第一帧,如果应用程序做得很顺利,那就没有问题了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39729043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档