Vulkan

Android รองรับ Vulkan ซึ่งเป็น API แบบ ข้ามแพลตฟอร์มที่มีค่าใช้จ่ายต่ำสำหรับกราฟิก 3 มิติประสิทธิภาพสูง Vulkan มีเครื่องมือสำหรับสร้างกราฟิกแบบเรียลไทม์คุณภาพสูง ในแอปเช่นเดียวกับ OpenGL ES (GLES) ข้อดีของการใช้ Vulkan ได้แก่ ค่าใช้จ่ายของ CPU ที่ลดลงและ การรองรับภาษากลางแบบไบนารี SPIR-V

ผู้ให้บริการระบบบนชิป (SoC) เช่น ผู้ให้บริการฮาร์ดแวร์อิสระ (IHV) ของ GPU จะเขียนไดรเวอร์ Vulkan สำหรับ Android และ OEM จะผสานรวมไดรเวอร์เหล่านี้สำหรับอุปกรณ์ที่เฉพาะเจาะจง ดูรายละเอียดเกี่ยวกับวิธีที่ไดรเวอร์ Vulkan โต้ตอบกับ ระบบ วิธีติดตั้งเครื่องมือเฉพาะของ GPU และข้อกำหนดเฉพาะของ Android ได้ที่หัวข้อ การใช้งาน Vulkan

นักพัฒนาแอปพลิเคชันใช้ Vulkan เพื่อสร้างแอปที่เรียกใช้คำสั่งใน GPU โดยมีค่าใช้จ่ายที่ลดลงอย่างมาก นอกจากนี้ Vulkan ยัง มีการแมปที่ตรงกว่ากับความสามารถที่พบในฮาร์ดแวร์กราฟิก ปัจจุบันเมื่อเทียบกับ EGL และ GLES, ซึ่งช่วยลดโอกาสที่จะเกิดข้อบกพร่องของไดรเวอร์และลดเวลาในการทดสอบของนักพัฒนา

ดูข้อมูลทั่วไปเกี่ยวกับ Vulkan ได้ที่ ภาพรวมของ Vulkan หรือดูรายการแหล่งข้อมูล

คอมโพเนนต์ของ Vulkan

การรองรับ Vulkan มีคอมโพเนนต์ต่อไปนี้

คอมโพเนนต์
Vulkan

รูปที่ 1 คอมโพเนนต์ของ Vulkan

ชื่อคอมโพเนนต์ ผู้ให้บริการ คำอธิบาย
เลเยอร์การตรวจสอบ Vulkan Android (ใน NDK) ไลบรารีที่ใช้ระหว่างการพัฒนาแอป Vulkan เพื่อค้นหาข้อผิดพลาดใน การใช้ Vulkan API ของแอป ระบบจะนำไลบรารีเหล่านี้ออกหลังจากพบข้อผิดพลาดในการใช้ API
รันไทม์ Vulkan Android ไลบรารีแบบเนทีฟ libvulkan.so ที่มี Vulkan API แบบเนทีฟ

ฟังก์ชันการทำงานส่วนใหญ่ของรันไทม์ Vulkan ได้รับการติดตั้งใช้งานโดยไดรเวอร์ ที่ผู้ให้บริการ GPU จัดหาให้ รันไทม์ Vulkan จะห่อหุ้มไดรเวอร์ มีความสามารถในการดักจับ API ความสามารถในการดักจับ (สำหรับการดีบักและเครื่องมืออื่นๆ สำหรับนักพัฒนา) และ จัดการการโต้ตอบระหว่างไดรเวอร์กับทรัพยากรที่แพลตฟอร์ม ต้องพึ่งพา
ไดรเวอร์ Vulkan SoC แมป Vulkan API กับคำสั่ง GPU เฉพาะของฮาร์ดแวร์และการโต้ตอบ กับไดรเวอร์กราฟิกของเคอร์เนล

คอมโพเนนต์ที่แก้ไข

BufferQueue และ Gralloc รองรับ Vulkan ดังนี้

  • BufferQueue. ค่า enum และเมธอดเพิ่มเติมใน BufferQueue และอินเทอร์เฟซ ANativeWindow ช่วยให้รันไทม์ Vulkan เชื่อมต่อกับ BufferQueue ผ่าน ANativeWindow ได้
  • Gralloc. อินเทอร์เฟซที่ไม่บังคับช่วยให้ Gralloc ค้นพบว่ารูปแบบที่กำหนดสามารถใช้ร่วมกับผู้ผลิต/ผู้บริโภคที่เฉพาะเจาะจงได้หรือไม่โดยไม่ต้องจัดสรรบัฟเฟอร์

ดูรายละเอียดเกี่ยวกับคอมโพเนนต์เหล่านี้ได้ที่ BufferQueue และ gralloc ดูรายละเอียดเกี่ยวกับ ANativeWindow ได้ที่ EGLSurfaces และ OpenGL ES

แหล่งข้อมูล

ใช้แหล่งข้อมูลต่อไปนี้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ 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 ครอบคลุมกิจกรรม แพตช์ บทแนะนำ และบทความข่าวสารอื่นๆ ที่เกี่ยวข้องกับ Vulkan