zoukankan      html  css  js  c++  java
  • Xcode OpenGL ES Frame Capture的使用

    一、使用背景

    近期在Xcode中使用OpenGL ES 2.0实现一些效果,刚开始存在一些性能问题(CPU和GPU),幸运的是Xcode中自带了免费的性能工具Instruments,其中包含OpenGL ES Analysis,查找方法如图1,图2所示,英文好的童鞋可以访问Apple官方提供的资料(https://developer.apple.com/library/content/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/ToolsOverview/ToolsOverview.html)。

          

               图1  OpenGL ES Analysis查找                      图2  OpenGL ES Analysis

    为了方便查看draw call的回调和shader的执行过程,故此分享下Xcode OpenGL ES Frame Capture的使用。

    参考网址:http://www.cnblogs.com/TracePlus/p/4093830.html

    二、使用方法

    1.OpenGL ES Frame Capture设置

    如果使用该功能的前提:

    (1)必须使用真机

    (2)至少Xcode4.5以上

    (3)需要把GLKit或OpenGL Framework加入代码中

    (4)设置Manager Schemes..,设置GPU Frame Capture为OpenGL ES 效果如图3,图4所示。

           

            图3  Manager Schemes                                              图4  设置GPU Frame Capture为OpenGL ES

    2.捕获Frame

    此时,按下command+R运行工程,当在真机上加载完成后进入Debug Navigator ,然后点击FPS标签查看FPS显示,CPU/GPU执行时间等,如图5,图6所示。

          图5  FPS查找

                                  图6  FPS标签内容

    图6中显示FPS为60,CPU耗时0毫秒,GPU耗时1.7毫秒。程序员的目标是将FPS尽可能的达到60,即每帧画面CPU和GPU耗时Wie16毫秒(1/60)。当FPS的值偏低时,就需要通过上图查看是CPU的瓶颈还是GPU的瓶颈,进而对其进行性能优化。

    当GPU遇到瓶颈时,可以捕获每帧,来查看渲染的内部流程,方法为在运行过程中,点击相机图标获取当前Frame,如图7,图8所示。

                图7  Frame捕获按钮

       

        图8  捕获到的当前Frame                                     图9  状态信息

    此时在当前设备上,可以看到当前捕获帧的画面(暂停中),选中左侧一行指令,右侧会出现对应的Buffers,GPU Objects 和变量,如图9所示。

    如果您的当前画面中没有Objects面板,则可以通过点击show assistant Editor,找到想要显示的选项,如图10所示。

                                

          图10  show assistant Editor                                                                      图11  设置是否高亮显示

    可以通过右键选择Show/Hide Draw Call Highlight,显示当前渲染部分为高亮显示,如图11所示。

    在assistant窗口中选择Programs选项,选择其中的Program Object便可查看其对应的shader,如图12所示。当然可以查看shader中各个方法的耗时情况,进而进行优化,修改之后点击左下角更新按钮即可查看修改之后的效果,如图13所示。

           

             图12  查看Program Objects                      图13  shader查看
     
  • 相关阅读:
    day25:接口类和抽象类
    vue1
    How the weather influences your mood?
    机器学习实验方法与原理
    How human activities damage the environment
    Slow food
    Brief Introduction to Esports
    Massive open online course (MOOC)
    Online learning in higher education
    Tensorflow Dataset API
  • 原文地址:https://www.cnblogs.com/calence/p/6575694.html
Copyright © 2011-2022 走看看