专栏名称: CSDN
CSDN精彩内容每日推荐。我们关注IT产品研发背后的那些人、技术和故事。
目录
相关文章推荐
新浪科技  ·  【#京东618成绩公布#:北京成购买力最强城 ... ·  15 小时前  
36氪  ·  人均140元的巴奴火锅,没海底捞会赚钱 ·  15 小时前  
51好读  ›  专栏  ›  CSDN

PC VR游戏的CPU性能分析与优化

CSDN  · 公众号  · 科技媒体  · 2017-03-07 09:46

正文

请到「今天看啥」查看全文


我们先来看看VR渲染管线和传统渲染管线的区别。如图2所示为传统游戏的渲染管线,其中CPU和GPU是并行处理的,以实现最高的硬件利用效率。但此方案并不适用于VR,因为VR需要较低和稳定的渲染延迟,传统游戏的渲染管线无法满足此项要求。

以图2为例,第N+2帧的渲染延迟会远高于VR对延迟的最低要求,因为GPU必须先完成第N+1帧的工作,再来处理第N+2帧的工作,因而使得第N+2帧产生了较高的延迟。此外,由于运行情况
不同,我们可以发现第N帧、第N+1帧和第N+2帧的渲染延迟也会有所差异,这对VR的体验也是不利的,因为一直变动的延迟会让用户产生晕动症(simulation sickness)。

图 2 传统游戏的渲染管线

因此,VR的渲染管线实际上如图3所示,这样能确保每帧可以达到最低的延迟。在图3中,CPU和GPU的并行计算被打破了,这样虽然降低了效率,但可确保每帧实现较低和稳定的渲染延迟。在这种情况下,CPU很容易成为VR的性能瓶颈,因为GPU必须等待CPU完成预渲染(绘制调用准备、动态阴影初始化、遮挡剔除等)才能开始工作。所以CPU优化有助于减少GPU的闲置时间,提高性能。

图 3 VR游戏的渲染管线

《猎影计划》VR游戏背景

《猎影计划》是腾讯旗下利用Unreal Engine 4开发的一款基于PC的DirectX 11 FPS虚拟现实游戏,支持Oculus Rift和HTC Vive。为了使《猎影计划》在英特尔处理器上实现最佳的游戏体验,我们与腾讯紧密合作,努力提升该游戏的性能与用户体验。测试结果显示,在本文所述的开发阶段,经优化后帧率得到了显着提升,从早期测试时跑在Oculus Rift DK2(分辨率1920x1080)上的每秒36.4fps提升至本次测试时跑在HTC Vive(分辨率2160x1200)上的每秒71.4fps。以下为各阶段使用的引擎和VR运行时版本:

  • 初始开发环境:Oculus v0.8 x64运行时和Unreal 4.10.2;

  • 本次测试的开发环境:SteamVR v1463169981和Unreal 4.11.2。

之所以在开发阶段会使用到不同的VR运行时的原因在于,《猎影计划》最初是基于Oculus Rift DK2开发的,稍后才迁移至HTC Vive。而测试显示采用不同的VR运行时在性能方面没有显着的差异,因为SteamVR和Oculus运行时采用了相同的VR渲染管线(如图3所示)。在此情况下,渲染性能主要由游戏引擎决定。这点可在图6和图15中得到验证,SteamVR和Oculus运行时在每帧的GPU渲染结束后才插入GPU任务(用于镜头畸变校正),而且仅消耗了少量GPU时间(约1ms)。

如图4所示为优化工作前后的游戏截图,优化之后绘制调用次数减少至原来的1/5,每帧的 GPU执行时间平均从15.1ms缩短至9.6ms,如图3和4所示:

图4 优化前(左)后(右)的游戏截图

测试平台的规格:

  • 英特尔酷睿i7-6820HK处理器(4核,8线程)2.7GHz

  • NVIDIA GeForce GTX980 16GB GDDR5

  • 图形驱动程序版本:364.72

  • 16GB DDR4 RAM

  • Windows10 RTM Build 10586.164

初步分析性能问题

为了更好地了解《猎影计划》的性能瓶颈,我们先综合分析了该游戏的基本性能指标,详情见表1。表中数据通过几种不同的工具收集,包括GPU-Z、TypePerf和Unreal Frontend等。将这些数据与系统空闲时的数据比较可得出以下几点结论:

  • 游戏运行时的帧率低(36.4fps)而且GPU利用率也低(GTX980上为49.64%)。如果能够提高GPU利用率,帧率也会提高。

  • 大量的绘制调用。DirectX 11中的渲染为单线程渲染,虽然微软提出deferred rendering context [3]







请到「今天看啥」查看全文