轉(zhuǎn)自:https://source.android.com/devices/graphics/?hl=zh-cn
Vulkan
Android 7.0 添加了對(duì)Vulkan的支持由境。Vulkan 是用于高性能 3D 圖形的低開(kāi)銷(xiāo)畜普、跨平臺(tái) API歪今。與 OpenGL ES 一樣俱萍,Vulkan 提供多種用于在應(yīng)用中創(chuàng)建高質(zhì)量的實(shí)時(shí)圖形的工具箭窜。Vulkan 的優(yōu)勢(shì)包括降低 CPU 開(kāi)銷(xiāo)以及支持SPIR-V 二進(jìn)制中間語(yǔ)言彩郊。
系統(tǒng)芯片 (SoC) 供應(yīng)商(如 GPU 獨(dú)立硬件供應(yīng)商 (IHV))可以編寫(xiě)適用于 Android 的 Vulkan 驅(qū)動(dòng)程序讥耗;原始設(shè)備制造商 (OEM) 只需為特定設(shè)備集成這些驅(qū)動(dòng)程序即可。要詳細(xì)了解 Vulkan 驅(qū)動(dòng)程序如何與系統(tǒng)進(jìn)行交互望伦、應(yīng)如何安裝特定于 GPU 的工具以及特定于 Android 的要求林说,請(qǐng)參閱實(shí)現(xiàn) Vulkan。
應(yīng)用開(kāi)發(fā)者可以利用 Vulkan 來(lái)創(chuàng)建在 GPU 上執(zhí)行命令的應(yīng)用屯伞,大幅降低開(kāi)銷(xiāo)述么。此外,Vulkan 還可以更直接地映射到當(dāng)前圖形硬件中的功能愕掏,最大限度地降低驅(qū)動(dòng)程序的出錯(cuò)概率,并減少開(kāi)發(fā)者的測(cè)試時(shí)間(例如顶伞,排查 Vulkan 錯(cuò)誤所需的時(shí)間更短)饵撑。
有關(guān) Vulkan 的常規(guī)信息剑梳,請(qǐng)參閱Vulkan 概覽或查看下文中的資源列表。
Vulkan 組件
Vulkan 支持包含以下組件:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 1:Vulkan 組件
Vulkan 驗(yàn)證層(在 Android NDK 中提供)滑潘。這是開(kāi)發(fā)者在開(kāi)發(fā) Vulkan 應(yīng)用期間使用的一組庫(kù)垢乙。圖形供應(yīng)商提供的 Vulkan 運(yùn)行時(shí)庫(kù)和 Vulkan 驅(qū)動(dòng)程序不包含使 Vulkan 運(yùn)行時(shí)保持高效的運(yùn)行時(shí)錯(cuò)誤檢查功能,而是使用驗(yàn)證庫(kù)(僅在開(kāi)發(fā)過(guò)程中)來(lái)查找應(yīng)用在使用 Vulkan API 時(shí)出現(xiàn)的錯(cuò)誤语卤。Vulkan 驗(yàn)證庫(kù)在開(kāi)發(fā)過(guò)程中關(guān)聯(lián)到應(yīng)用并執(zhí)行此錯(cuò)誤檢查追逮。在找出所有 API 使用問(wèn)題之后,該應(yīng)用將不再需要包含這些庫(kù)粹舵。
Vulkan 運(yùn)行時(shí)(由 Android 提供)钮孵。這是一個(gè)原生庫(kù) ((libvulkan.so),提供稱(chēng)為Vulkan的新公共原生 API眼滤。大多數(shù)功能由 GPU 供應(yīng)商提供的驅(qū)動(dòng)程序?qū)崿F(xiàn)巴席;運(yùn)行時(shí)會(huì)封裝驅(qū)動(dòng)程序、提供 API 攔截功能(針對(duì)調(diào)試和其他開(kāi)發(fā)者工具)以及管理驅(qū)動(dòng)程序與平臺(tái)依賴(lài)項(xiàng)(如 BufferQueue)之間的交互诅需。
Vulkan 驅(qū)動(dòng)程序(由 SoC 提供)漾唉。將 Vulkan API 映射到特定于硬件的 GPU 命令以及與內(nèi)核圖形驅(qū)動(dòng)程序的交互。
已修改的組件
為支持 Vulkan堰塌,Android 7.0 對(duì)以下現(xiàn)有圖形組件進(jìn)行了修改:
BufferQueue:Vulkan 運(yùn)行時(shí)通過(guò)現(xiàn)有ANativeWindow接口與現(xiàn)有的 BufferQueue 組件進(jìn)行交互赵刑。對(duì)ANativeWindow和 BufferQueue 進(jìn)行了細(xì)微的修改(新枚舉值和新方法),而架構(gòu)沒(méi)有任何變更场刑。
Gralloc HAL:添加了一個(gè)新的可選接口般此,用于了解是否可將某種指定格式用于特定生產(chǎn)方/消費(fèi)方組合,而無(wú)需實(shí)際分配緩沖區(qū)摇邦。
有關(guān)這些組件的詳情恤煞,請(qǐng)參閱BufferQueue 和 gralloc(有關(guān)ANativeWindow的詳情,請(qǐng)參閱EGLSurface 和 OpenGL ES)施籍。
Vulkan API
Android 平臺(tái)包括來(lái)自 Khronos Group 的Vulkan API 規(guī)范的Android 特定實(shí)現(xiàn)居扒。Android 應(yīng)用必須使用Window 系統(tǒng)集成 (WSI) 擴(kuò)展程序來(lái)輸出其呈現(xiàn)內(nèi)容。
資源
通過(guò)以下資源詳細(xì)了解 Vulkan:
位于platform/frameworks/native/vulkan的Vulkan 加載程序(libvulkan.so):包含 Android 的 Vulkan 加載程序丑慎,以及一些對(duì)平臺(tái)開(kāi)發(fā)者十分有用的 Vulkan 相關(guān)工具喜喂。
Vulkan 實(shí)現(xiàn)人員指南:旨在幫助 GPU IHV 編寫(xiě)適用于 Android 的 Vulkan 驅(qū)動(dòng)程序,以及指導(dǎo)原始設(shè)備制造商 (OEM) 為特定設(shè)備集成這些驅(qū)動(dòng)程序竿裂。該指南介紹了 Vulkan 驅(qū)動(dòng)程序如何與系統(tǒng)進(jìn)行交互玉吁、應(yīng)如何安裝特定于 GPU 的工具,以及特定于 Android 的要求腻异。
Vulkan Graphics API 指南:介紹了如何開(kāi)始在 Android 應(yīng)用中使用 Vulkan进副、Android 平臺(tái)上的 Vulkan 設(shè)計(jì)指南詳情、如何使用 Vulkan 的著色程序編譯器悔常,以及如何使用驗(yàn)證層來(lái)幫助確保使用 Vulkan 的應(yīng)用的穩(wěn)定性影斑。
Vulkan 新聞:包含事件给赞、補(bǔ)丁程序、教程以及更多與 Vulkan 相關(guān)的新聞報(bào)道矫户。
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.