
文章图片
上图左下角是每个线程的概况,每个线程在每个时间点的活动是怎么样的,线程之间有没有一些同步关系,替代关系,都可以看得很清楚。在每一个时间段,每一个线程当中是哪些函数在运行,甚至是说每一个函数运行,再往下面直到每一行代码都可以给你指出来,每一行代码主要 Bound 的原因是什么,花了多长时间,都可以给你指出来。
这样对开发者来说,就可以对程序有一个非常总体的了解,哪一个线程是瓶颈,哪一个模块是瓶颈,哪一个函数是瓶颈,甚至具体到哪一个代码,真正让你清清楚楚,明明白白,知道在哪里改进会得到最好的优化。

文章图片
在GPU上,英特尔也有一个很好的工具GPA。虽然说我们现在还是集成显卡,但是未来你懂的。在过去十来年我们和客户合作过程当中,GPA 工具也是广受客户赞誉的,它会对整个游戏总体的情况,具体到每一个 Pass,每一个 Draw call,每一个Shader,每一个参数都可以通过这个能够发现,你可以方便定位这些问题,然后让开发者知道是什么情况。这个截屏也是一个整体的概况,从这里面可以看到它有很多的性能指标,包括你有多少个 Draw call,你每一帧的情况都能详尽展示。

文章图片
当你只有一台机器的时候,你可以像右边这样。左边这个情况是说你可以连到局域网当中的任何一台机器上,互不影响的收集这些信息。右边这个是说你也可以直接切换到程序界面上,用一台机器就可以看到这些性能信息,非常的方便。

文章图片
客户还会经常碰到一个问题,我在玩一个游戏的时候突然掉帧,但是我不知道它是在哪掉的,我根本来不及抓取。我们还提供这样的功能,你可以抓一段时间里面的每一帧的 Frame,抓出来之后,它可以把每一帧的时间都显示来,然后你可以点其中最耗时的那一帧然后去播放。它从前面一直播放到这一帧就会停止,然后再把你这一帧的数据打开。比如说播放到这里就停止了,这就是最耗时的那一帧,接着把这一帧打开,你可以明显看到你有多少个 Draw call,比如说这一帧上面有多少个 Draw call都可以看到,每一个 Draw call 的时间花费多少都显示的非常清楚明白。

文章图片
它也会对你整个这一帧有一个根据你的 3D Pipeline 来的分析。比如说右边就是在 3D 当中,我渲染一帧要经过哪些步骤之类的。左边对应的我们的 GPA 就会告诉你,你在渲染这一帧的时候,其实是你的 Back-End 这边有最明显的问题。英特尔和游戏开发者就知道,我们怎么着手去搞定这个问题。

文章图片
另外是说我可以看到每一个 Draw call 里面我用到了哪些模型,这些模型究竟有多少个顶点我都可以看得很清楚。比如说这块石头用了 8000 多个顶点,这样是不是就合适呢?它耗时多长时间都会显示出来。这段Shader代码是什么样的都会显示出来。

文章图片
除了工具之外,人也是非常重要的。英特尔有一些技术工程师在游戏开发的早期就会进去。另外英特尔在发布一些新的平台的时候,我们会在测试版的机器就会给到这些开发者,让他们提前进行适配。我刚刚也说了,我们是一个全球团队,我们本地有一些问题能够解决的我们就解决,不能解决的还可以把这些问题带回给其他的团队来帮助我们解决。国外和其他的大厂做过什么样的优化,有什么好的优化方法,也可以带回来介绍给国内的开发者。另外我们还有测试服务,一个游戏过来,我会帮你测试你所关注的好几个平台上的性能。很多开发者本身也许拥有的机器是很少的,但是他想进适配或者是覆盖的玩家设备,这个时候就可以帮到他们对大部分的平台做性能分析或者是测试,然后反馈给他们,当你发现一些问题的时候,他才会有目的性的去准备一些平台进行这种优化。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
