GPU Debugger

GPU Debugging Tools

The GPU debugging tools are an experimental feature intended to help inspect GPU state and understand what caused a specific rendering outcome.

Installing the GPU Debugging Tools

The GPU Debugging Tools are not installed by default; you’ll need to add it before you can use it.  You can find them in the SDK tools section of your SDK manager:

Adding the trace library to your application

In order to use the profiler, you need to load the trace library in your application.  The correct way to load the library depends on whether your code is C++ or Java.   The library can be loaded via either method in a hybrid app.

Regardless of which way you load the library, you first need to copy it into your project so that it can be loaded.  The trace library will be located inside your SDK installation.  You can find your SDK installation path location listed at the top of your SDK Manager.  The libraries will be located in <sdkDir>/extras/android/gapid/android/<abi>/libgapii.so.  

You need to copy the relevant abi folders into your project’s jniLibs directory.  This will be at <projectDir>/app/src/main/jniLibs.  If it doesn’t already exist, you should create it.  Like the SDK manager folder, jniLibs should contain one folder per ABI that you plan to support.  If you don’t know which ABIs you plan to support, you can copy all of the folders.  Your final project directory structure should look like <projectDir>/app/src/main/jniLibs/<abi>/libgappii.so.

Loading the trace library in native code

To load the trace library in native code, create a .cpp file containing this snippet:

#include <android/log.h>

#include <dlfcn.h>

#define PACKAGE_NAME "" // Fill this in with the actual package name

#define GAPII_SO_PATH "/data/data/" PACKAGE_NAME "/lib/libgapii.so"

struct GapiiLoader {

GapiiLoader() {

if (!dlopen(GAPII_SO_PATH, RTLD_LOCAL | RTLD_NOW)) {

__android_log_print(ANDROID_LOG_ERROR, "GAPII", "Failed loading " GAPII_SO_PATH);

}

}

};

GapiiLoader __attribute__((used)) gGapiiLoader;

Loading the trace library in Java code

To load the trace library into Java code, insert this snippet into your main class:

static {

System.loadLibrary("gapii");

}

Running a trace

Note that once you add the trace library, your application will block on startup until it can connect to the Android Studio trace receiver.  This will render your application useless outside of debugging contexts, so be sure to remove the trace library from your application when you’re done with the profiler.

To start a trace, deploy and run your app as normal.  It should load with a blank screen while it waits for the trace receiver; to enable the receiver, go to the CPU/GPU tab of the Android Monitor.  Click the red trace button on the left side of the GPU subtab:

Once you begin tracing, your application should unblock and proceed as normal.  As you interact with it, all GPU data will be captured by the trace.  When you’re done capturing data, click the trace button again to stop the trace.  As soon as the trace has finished being written to the file, it will be opened ready for inspection.

Reading trace results

Traces will be logged to a new captures folder inside your project.  When you open a trace, the top bar of the UI will show the full sequence of logged frames.   You can select an individual frame via either the top bar or the GPU commands panel; once you select a frame, the center right framebuffer window will update to show that frame’s contents.   If you expand the frame on the lefthand GPU commands window, you’ll see the individual draw commands and GL calls that were used.

If you click on a draw command, the framebuffer preview will be updated to reflect the contents as of that draw call.  As applicable, the memory window in the lower right will also be updated to show relevant memory state at the time of the call.

At any point, you can use the GPU State window or the Textures tab to explore relevant GPU state at the time of your selected frame or draw calls.

If you run into issues, please help us improve the 2.0 release by logging bugs in our public Issues Tracker. You can create an issue via this link or by clicking on Help → Submit Feedback directly in Android Studio.

android studio 2.0 GPU Debugger使用说明的更多相关文章

  1. Android Studio 3.0 下载 使用新功能介绍

    谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快.(英语一般,有些翻译不太好) 下载地址 https://developer.android.g ...

  2. Android Studio 2.0 正式版公布啦 (首次中文翻译)

    Android Studio 2.0 公布了,添加了一些新特性: 1. 更加完好的 Instant Run 2. 更快的 Android Emulator 3.GPU Debugger Preview ...

  3. Android Studio 2.0 稳定版新特性介绍

    Android Studio 2.0 最终迎来了稳定版本号,喜大普奔. 以下这篇文章是2.0新特性的一些简介. 假设想看具体内容请看这里<Android Studio有用指南> 文章转自这 ...

  4. 当一回Android Studio 2.0的小白鼠

    上个星期就放出了Android studio出2.0的消息,看了一下what's new 简直抓到了那个蛋疼的编译速度痛点.在网上稍微搜索了一下后发现基本都是介绍视频.一番挣扎后(因为被这IDE坑过几 ...

  5. Android Studio 3.0 新特性

    最新Android Studio版本是Android Studio 3.0,本文提供了所有新功能和更改的摘要. 所有这些功能都可以在最新的金丝雀版本中发布,但beta测试版本可能尚未提供. 核心IDE ...

  6. Android Studio 2.0使用指南

    一.下载界面.[无激活码 无序列码 无毒请放心使用][需将JAVA程序升级到1.8] 网址:http://www.android-studio.org/index.php/download/andro ...

  7. Android Studio 1.0.2项目实战——从一个APP的开发过程认识Android Studio

    Android Studio 1.0.1刚刚发布不久,谷歌紧接着发布了Android Studio 1.0.2版本,和1.0.0一样,是一个Bug修复版本.在上一篇Android Studio 1.0 ...

  8. Android Studio 1.0.1 + Genymotion安卓模拟器打造高效安卓开发环境

    我们开发安卓大多是使用Eclipse和安卓SDK中自带的安卓模拟器.当然,Google早就推出了自己的安卓开发环境——Android studio,在不久前,Google发布了Android Stud ...

  9. [Android] 环境配置之正式版Android Studio 1.0

    昨天看见 Android Studio 1.0 正式版本发布了:心里挺高兴的. 算是忠实用户了吧,从去年开发者大会一开始出现 AS 后就开始使用了:也是从那时开始就基本没有用过 Eclipse 了:一 ...

随机推荐

  1. nfs部署和优化

    nfs--网络文件系统 1.说明:允许一个系统在网络上与他人共享目录和文件 2.好处:通过nfs服务,就可以让这个机器访问远程的文件,像访问自己的文件一样,属于cs通信   3.原理说明:假设有A,B ...

  2. sql server中将一个字段根据某个字符拆分成多个字段显示

    sql server 数据库中某张表(Person)的数据信息是: ID Address 1 平山花园-4单元-12幢-203 2 香山花园-3单元-22幢-304 现在有需求是,将地址信息显示形式改 ...

  3. JAVA学习笔记之与C#对比

    最近在学习java,刚学完入门课程...下面说一下入门课程中相对印象深刻的知识点 JAVA-C#差异 1. for循环 C# string [] strarr=new string[5]; forea ...

  4. Spring+SpringMvc+Mybatis框架集成搭建教程五(项目源码发布到GitHub)

    一.背景 我们做完了上面的四步操作以后,来把我们写好的项目提交到自己的GitHub仓库进行版本管理,具体步骤如下. 二.提交步骤 1.首先你要保证你已经有GitHub的账号和密码(没有可以去githu ...

  5. Android 笔记 day4

    单元测试

  6. 参数table_open_cache

    table_cache 参数设置表高速缓存的数目.每个连接进来,都会至少打开一个表缓存.因此, table_cache 的大小应与 max_connections 的设置有关.例如,对于 200 个并 ...

  7. PV操作

    学习PV操作之前,我们首先来了解两个很基础的概念: 同步.互斥: 同步:其实说同步还不如说”协作“,就是我们的目标只有一个,我们奔着同一个目标去的,都是在大家的努力下共同完成这么一件事情.还是比较容易 ...

  8. 【CentOS】压缩打包

    一.gzip [-d][-1-9][filename] -d  解压 -[1-9]  压缩等级(默认为6) zcat filename.gz 查看压缩文件 最小化安装centOS是没有安装bzip2的 ...

  9. iOS 从git拷贝Xcode的snippets

    do following things in terminal 1. check out the project using: git clone gitAddress 2. cd the proje ...

  10. C# 词法分析器(五)转换 DFA

    系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 在上一篇文章中,已经得到了与正则表达式等价的 NFA ...