九点VR网 > VR开发 > VR仿真 > VP程序CPU占用过高或者帧率过低的解决办法,纯属经验

VP程序CPU占用过高或者帧率过低的解决办法,纯属经验

日期:2019-10-17     浏览:96    
核心提示:如果出现这两种情况,需要检查这么几点:1。你如果使用的是线程方式,看看优先级,然后在满足帧率要求的情况下,在循环中 暂停一下 或者用sleep停停如果使用的是时钟进行循环,那么cpu使用率会大大降低2。查看vp的几个线程:draw,cull,app看看哪一个占用时间最大,2.1
   如果出现这两种情况,需要检查这么几点:

1。你如果使用的是线程方式,看看优先级,然后在满足帧率要求的情况下,在循环中 暂停一下 或者用sleep停停

如果使用的是时钟进行循环,那么cpu使用率会大大降低

2。查看vp的几个线程:draw,cull,app看看哪一个占用时间最大,

2.1 如果是draw占用时间多,则说明绘制过多,多半是由以下情况造成的:

1) 多通道叠加,所以要避免使用多通道叠加,使之刚好能分离开

2) 在通道上有多种opengl绘制,比如说:使用了overlay,使用了通道订阅

3) 屏幕分辨率过大,比如说:一机双屏输出的情况,因为会对窗口有一个裁减

4) 其它我不知道的原因

2.2 如果是App线程花费时间过高,则说明在循环体中,各种计算量过大,那么请检查你的循环体中,是否有很复杂的计算,

检查办法是:把循环体中的所有函数都屏蔽了,然后再次看运行情况,

如果确有改善,那么你就需要优化你的计算,或者把一部份计算放在循环体外,用专用的线程进行计算。

2.3 如果是cull花费时间过高,则说明你的场景有些复杂,可以考虑优化你的场景,减少场景的复杂程度,

一般的方法是 多使用lod 层级细节,对地域上的模型进行分块管理,每块模型不要跨度太大 等等,

3. 硬件方面:

3.1 CPU方面,现在流行多核的CPU,那么完全可以利用起来:

例如:dell690工作站(其它型号的差不多,我拿我使用过的做个例子)

这款工作站为至强双路双核,也就是说有两个cpu,每个cpu有两个核心,vp完全支持多CPU模式,(virtools和其他几款vr软件就不支持,所以vp还是比较适合做工程用),这样一共存在

8个CPU ID,

根据我的使用得到地经验,超线程模式会降低VP的帧率,因此在机器的BIOS设置中,请关掉超线程模式。

那么这样下来,只剩下4个CPU ID了,分别为 0、1、2、3。 (打开任务管理器,你也可以查看到你的电脑有几路CPU)

根据你的VP应用,如果你的VP程序共有三条vp管线:Pipeline0,Pipeline1,Pipeline2,(我在这个工作站上的应用中使用了4条管线,以三条为例,比较大众一些)

对每条管线设置cpu,可以这样:

Pipeline0-------------------------- CPU ID :0

Pipeline1-------------------------- CPU ID :2

Pipeline2-------------------------- CPU ID :3

设置的原则是 保证每路CPU都运行一个主要任务,以上设置 让第一个cpu的第二个核(CPU ID :1)空闲了下来,那么就可以在 VP的应用:比如在通道的CULL线程中指定这个CPU ID

或者在其它特殊模块的应用中,使用这个CPU ID,比如说使用了海洋模块,那么就可以设置海洋模块的使用 CPU ID。

总而言之,在vp运行过程中,打开任务管理器 ,查看各CPU的占用情况,不能让某一路使用率过高,如果某一路使用率过高,则需要把它的部分应用 转移到使用率过低的那一路上。

3.2 显卡方面

说一下显卡驱动程序的设置:

现在的主流显示 分辨为CRT显示器、液晶显示器、和投影设备

对显卡垂直同步的要求不高,所以如果你的vp应用帧率过低的话,可以关闭显卡的垂直同步功能,关闭这项,可以明显提高vp的帧率,(当然可提高绝大部分 图形应用程序,包括游戏)

对于NVIDIA显卡,这项默认是关闭的,对于ATI显卡 这项默认好像是打开的

所以,运行VP的样例程场景 在ATI显卡上,帧率最大能到 几百帧,在nvidia显卡上,最多不超过75帧(或者60帧)

如果你的显卡有应用方案配置的话,通常情况下 可以选择 Opengl 相关的配置 ,例如 Opengl Games /Multigen Creator/等

ATI V3100显卡上有Multigen Creator的配置方案 ,ATI V3400后就没有了,

Nvidia显卡上一般没有这种优化配置方案,所以就需要你手动自己设置选项。你自己都可以试试

显卡与VP应用:

根据我的应用经验,几万元的Nvidia FX4500运行VP的帧率可能比不上 1千多元的ATI 显卡,当然 这只是针对VP程序的运行。

在我的一个应用中,我们拔掉了主板上两块 FX4500,只插上了一块ATI V3400显卡,结果帧率从十几帧 提高到了30多帧

当然 经过测试,运行主流游戏和SpeedTree 以上提及的显卡 当然Nvidia的 要快很多。

以上所说 纯属经验,供参考!

本文来源:VP程序CPU占用过高或者帧率过低的解决办法,纯属经验    http://www.9d-vr.net/kf/245/11.html

推荐阅读


热门标签
热门文章
上一篇:
暂无