谷歌(Google卡塔尔国 近期布告并开源了
GAPID,这是一个工具合集,允许检查、调解和重复从应用程序到 Graphics
驱动之间的调用。

转自:

GAPID 选择 Go 语言编写,这几天仍在开采中,但现已能够用于调节和测量试验好些个 Android
OpenGL ES 和 Vulkan 应用。

Vulkan

Android 7.0
加多了对Vulkan的支持。Vulkan
是用以高质量 3D 图形的低费用、跨平台 API。与 OpenGL ES 相似,Vulkan
提供种种用来在利用中创建高水平的实时图形的工具。Vulkan 的优势包涵减弱CPU 开支以致帮忙SPI昂Cora-V
二进制中间语言。

系统晶片 (SoCState of Qatar 供应商(如 GPU 独立硬件承包商 (IHV卡塔尔)能够编写适用于
Android 的 Vulkan 驱动程序;原始设备创立商 (OEM卡塔尔(قطر‎只需为一定设备集成这么些驱动程序就能够。要详细询问 Vulkan
驱动程序如何与系统开展交互作用、应什么设置特定于 GPU 的工具以致特定于
Android 的渴求,请参阅实现
Vulkan。

使用开采者能够应用 Vulkan 来创建在 GPU
上实施命令的利用,小幅减退成本。别的,Vulkan
还是能够更加直白地映射到当下图形硬件中的功效,最大限度地下落驱动程序的出错可能率,并收缩开辟者的测验时间(比如,排查Vulkan 错误所需的时刻更加短)。

至于 Vulkan 的符合规律音讯,请参阅Vulkan
概览或查看下文中的资源列表。

GAPID 由以下子工具/组件构成:

Vulkan 组件

Vulkan 帮衬包涵以下组件:

图片 1

                                                                  图
1:Vulkan 组件

Vulkan 验证层(在 Android NDK 中提供)。那是开采者在支付 Vulkan
应用时期采用的一组库。图形中间商提供的 Vulkan 运转时库和 Vulkan
驱动程序不富含使 Vulkan
运转时保持火速的运营时不当检查成效,而是采取验证库(仅在付出进程中)来查找应用在选取Vulkan API 时出现的错误。Vulkan
验证库在支付进程中涉及到应用并试行此错误检查。在寻找富有 API
使用难题以往,该应用将不再须求包涵那几个库。

Vulkan 运行时(由 Android 提供)。那是叁个原生库
((libvulkan.so卡塔尔,提受审陈述为Vulkan的新公共原生
API。大超级多功能由 GPU
中间商提供的驱动程序达成;运营时会封装驱动程序、提供 API
拦截效率(针对调节和测量检验和任何开拓者工具)甚至管理驱动程序与平台信赖项(如
BufferQueue)之间的人机联作。

Vulkan 驱动程序(由 SoC 提供)。将 Vulkan API 映射到特定于硬件的
GPU 命令以致与底工图形驱动程序的交互作用。

已校勘的构件

为支撑 Vulkan,Android 7.0 对以下现有图形组件实行了更改:

BufferQueue:Vulkan 运转时经过现成ANativeWindow接口与现成的
BufferQueue 组件进行人机联作。对ANativeWindow和 BufferQueue
进行了一线的校订(新枚举值和新格局),而结构并未别的改换。

Gralloc
HAL
:加多了四个新的可选接口,用于明白是否可将某种钦命格式用于特定坐蓐方/花费方组合,而不供给实际分配缓冲区。

关于那些组件的详细情况,请参阅BufferQueue 和
gralloc(有关ANativeWindow的详情,请参阅EGLSurface
和 OpenGL
ES)。

Vulkan API

Android 平台包含来自 Khronos Group 的Vulkan API
规范的Android
特定达成。Android
应用必得选拔Window 系统集成 (WSI)扩充程序来输出其表现内容。

  • gapii图形
    API 拦截器
    —— 位居应用程序/游戏和 GPU
    驱动程序之间的一层,记录全数调用和内部存款和储蓄器访谈。

  • gapis图形API服务器 ——  分析报告不科学的抓获流 API
    使用情状,管理在各类指标设备上再迈进度的多少,并向顾客端提供 RPC
    接口。

  • gapir图像 API
    Replay 守护 
    ——  一个基于货仓的
    VM,用于重放捕获文件,模仿原本应用程序/游戏对 GPU
    驱动程序的调用。帮忙读取任何缓冲区/帧缓冲区,并提供剖析成效。

  • gapic图形
    API 客户端 
    ——  
    前端用户界面应用。提供捕获数据、内部存款和储蓄器、财富和帧缓冲区内容的可视化检查。

  • gapil图形
    API 语言
    —— 一种新的一定领域语言,用于完备描述图形
    API。拦截器、服务器和再度系统的多方面都是注重它构成模板生成的。

资源

通过以下能源详细摸底 Vulkan:

位于platform/frameworks/native/vulkan的Vulkan
加载程序(libvulkan.so卡塔尔:满含Android 的 Vulkan 加载程序,以至部分对平台开辟者一成蹴而就的 Vulkan
相关工具。

Vulkan
实现人口指南:意在救助
GPU IHV 编写适用于 Android 的 Vulkan 驱动程序,以致指引原始设备创造商
(OEM卡塔尔 为一定设备集成那些驱动程序。该指南介绍了 Vulkan
驱动程序怎么着与系统开展相互、应如何设置特定于 GPU 的工具,以致特定于
Android 的供给。

Vulkan Graphics API
指南:介绍了什么样伊始在
Android 应用中运用 Vulkan、Android 平台上的 Vulkan
设计指南详细的情况、怎么样运用 Vulkan
的着色程序编写翻译器,以致哪些行使验证层来援救确认保证使用 Vulkan
的行使的安居。

Vulkan
新闻:包含事件、补丁程序、教程以致越来越多与
Vulkan 相关的音讯电视发表。

Except as otherwise noted, the content of this page is licensed under
theCreative Commons Attribution 3.0
License,
and code samples are licensed under theApache 2.0
License.
For details, see ourSite
Policies.
Java is a registered trademark of Oracle and/or its affiliates.

Last updated 九月 6, 2017.

图片 2

GAPID 扶助在 Windows、Linux 和 MacOS 上运转,谷歌 还安顿在支撑那么些 API
的主机上跟踪 OpenGLES 和 Vulkan 应用。

(文/开源中华夏族民共和国State of Qatar