Android รองรับ Vulkan ซึ่งเป็น API แบบข้ามแพลตฟอร์มที่มีค่าใช้จ่ายต่ำสำหรับกราฟิก 3 มิติที่มีประสิทธิภาพสูง เช่นเดียวกับ OpenGL ES (GLES), Vulkan มีเครื่องมือสำหรับสร้างกราฟิกคุณภาพสูงแบบเรียลไทม์ในแอป ข้อดีของการใช้ Vulkan ได้แก่ การลดค่าใช้จ่ายเพิ่มเติมของ CPU และรองรับภาษา SPIR-V Binary Intermediate
ผู้ให้บริการระบบวงจรรวมบนชิป (SoC) เช่น ผู้ให้บริการฮาร์ดแวร์อิสระ (IHV) ของ GPU จะเขียนโปรแกรมควบคุม Vulkan สำหรับ Android ได้ OEM ต้องผสานรวมไดรเวอร์เหล่านี้สำหรับอุปกรณ์ที่เฉพาะเจาะจง โปรดดูรายละเอียดเกี่ยวกับวิธีที่ไดรเวอร์ Vulkan โต้ตอบกับระบบ วิธีติดตั้งเครื่องมือสำหรับ GPU โดยเฉพาะ และข้อกำหนดเฉพาะของ Android ที่หัวข้อการใช้ Vulkan
นักพัฒนาแอปพลิเคชันใช้ Vulkan เพื่อสร้างแอปที่ดำเนินการคำสั่งใน GPU โดยลดค่าใช้จ่ายเพิ่มเติมได้อย่างมาก นอกจากนี้ Vulkan ยังจับคู่กับความสามารถที่มีอยู่ในฮาร์ดแวร์กราฟิกปัจจุบันได้โดยตรงกว่า EGL และ GLES ซึ่งจะช่วยลดโอกาสที่จะเกิดข้อบกพร่องของไดรเวอร์และลดเวลาในการทดสอบของนักพัฒนาแอป
ดูข้อมูลทั่วไปเกี่ยวกับ Vulkan ได้ที่หัวข้อภาพรวมของ Vulkan หรือดูรายการแหล่งข้อมูล
คอมโพเนนต์ Vulkan
การรองรับ Vulkan ประกอบด้วยคอมโพเนนต์ต่อไปนี้
รูปที่ 1 คอมโพเนนต์ Vulkan
ชื่อคอมโพเนนต์ | ผู้ให้บริการ | คำอธิบาย |
---|---|---|
ชั้นการตรวจสอบ Vulkan | Android (ใน NDK) | ไลบรารีที่ใช้ในระหว่างการพัฒนาแอป Vulkan เพื่อค้นหาข้อผิดพลาดในการใช้ Vulkan API ของแอป หลังจากพบข้อผิดพลาดในการใช้งาน API แล้ว คุณควรนําไลบรารีเหล่านี้ออก |
รันไทม์ Vulkan | Android | ไลบรารีแบบเนทีฟ libvulkan.so ที่มี Vulkan API ดั้งเดิมโดยฟังก์ชันการทำงานของ Vulkan Runtime ส่วนใหญ่จะใช้งานโดยโปรแกรมควบคุมที่ได้จากผู้ให้บริการ GPU Vulkan Runtime จะรวมไดรเวอร์ไว้ด้วยกัน มอบความสามารถในการรับส่งข้อมูล API (สำหรับการแก้ไขข้อบกพร่องและเครื่องมืออื่นๆ สำหรับนักพัฒนาซอฟต์แวร์) และจัดการการโต้ตอบระหว่างไดรเวอร์กับแพลตฟอร์มที่ต้องใช้ร่วมกัน |
โปรแกรมควบคุม Vulkan | SoC | แมป Vulkan API กับคำสั่งและการทำงานร่วมกันของ GPU ที่เจาะจงฮาร์ดแวร์กับไดรเวอร์กราฟิกเคอร์เนล |
คอมโพเนนต์ที่แก้ไขแล้ว
BufferQueue และ Gralloc รองรับ Vulkan ดังนี้
- BufferQueue ค่าและเมธอดเพิ่มเติมของ Enum ใน BufferQueue และอินเทอร์เฟซ
ANativeWindow
ช่วยให้ Vulkan Runtime เชื่อมต่อกับ BufferQueue ผ่านANativeWindow
ได้ - Gralloc อินเทอร์เฟซที่ไม่บังคับช่วยให้ Gralloc ค้นพบได้ว่าจะสามารถใช้รูปแบบหนึ่งๆ สำหรับชุดค่าผสมของผู้ผลิต/ผู้บริโภคหนึ่งๆ ได้หรือไม่โดยไม่ต้องจัดสรรบัฟเฟอร์
โปรดดูรายละเอียดเกี่ยวกับคอมโพเนนต์เหล่านี้ที่ BufferQueue และ gralloc โปรดดูรายละเอียดเกี่ยวกับ ANativeWindow
ที่หัวข้อ EGLSurfaces และ OpenGL)
แหล่งข้อมูล
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Vulkan ได้จากแหล่งข้อมูลต่อไปนี้
-
Vulkan Loader (
libvulkan.so
) ที่platform/frameworks/native/vulkan
มี Vulkan Loader ของ Android รวมถึงเครื่องมือบางอย่างที่เกี่ยวข้องกับ Vulkan ซึ่งเป็นประโยชน์ต่อนักพัฒนาแพลตฟอร์ม - การใช้ Vulkan มีไว้สำหรับ IHV ของ GPU ที่เขียนไดรเวอร์ Vulkan สำหรับ Android และ OEM ที่ผสานรวมไดรเวอร์เหล่านั้นสำหรับอุปกรณ์ที่เฉพาะเจาะจง ซึ่งอธิบายวิธีการทำงานของไดรเวอร์ Vulkan กับระบบ วิธีติดตั้งเครื่องมือสำหรับ GPU โดยเฉพาะ และข้อกำหนดในการใช้งานสำหรับ Android โดยเฉพาะ
- คู่มือ Vulkan Graphics API มีข้อมูลเกี่ยวกับการเริ่มต้นใช้งาน Vulkan ในแอป Android, แพลตฟอร์มหลักเกณฑ์การออกแบบ Vulkan ของ Android, การใช้คอมไพเลอร์ Shader ของ Vulkan และการใช้เลเยอร์การตรวจสอบเพื่อช่วยเพิ่มความเสถียรในแอปที่ใช้ Vulkan
- Vulkan News ครอบคลุมกิจกรรม แพตช์ บทแนะนำ และบทความข่าวอื่นๆ ที่เกี่ยวข้องกับ Vulkan