หมึกกระดอง: การเร่งกราฟิกด้วย GPU

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

อุปกรณ์หมึกกระดองที่ใช้ Android 11 ขึ้นไป จะตรวจหาและใช้กราฟิกแบบเร่ง หากเครื่องโฮสต์ไม่รองรับ กราฟิกแบบเร่งหรือเวอร์ชัน Android คือ Android 10 หรือต่ำกว่า การแสดงผลฝั่งผู้มาเยือน (เช่น UI และการเล่นวิดีโอ) ในอุปกรณ์ Cuttlefish จะได้รับการจัดการโดย SwiftShader SwiftShader เป็นการใช้งานซอฟต์แวร์ของ API ของ OpenGL และ Vulkan เพราะ SwiftShader เป็นการติดตั้งใช้งานซอฟต์แวร์ซึ่งให้แอปพลิเคชัน โซลูชันการแสดงผลสำหรับ Cuttlefish ที่สามารถทำงานกับเครื่องโฮสต์ใดก็ได้

อย่างไรก็ตาม การใช้ SwiftShader จะไม่มีประสิทธิภาพเท่าอุปกรณ์ปกติ การแสดงผลคือ โจทย์คู่ขนานที่สามารถขนานกันอย่างมหาศาล เป็นพิกเซล สามารถคำนวณได้อย่างอิสระ หน่วยประมวลผลกราฟิก (GPU) คือ หน่วยฮาร์ดแวร์ที่แก้ไขปัญหานี้ด้วยการเร่งการแสดงผล

ข้อกำหนด

โฮสต์ต้องมีสิ่งต่อไปนี้ โหมดกราฟิกแบบเร่ง

  • ไดรเวอร์ที่รองรับ EGL ที่รองรับส่วนขยาย GL_KHR_surfaceless_context
  • ไดรเวอร์ที่ใช้ OpenGL ES ได้
  • ไดรเวอร์ Vulkan

ใช้โหมดกราฟิกแบบเร่ง

สตรีม GFX

หากต้องการใช้โหมดกราฟิกเร่งของ GfxStream ให้เรียกใช้ Cuttlefish ในเครื่อง อุปกรณ์ที่มีธง --gpu_mode=gfxstream การใช้โหมดนี้ OpenGL และ Vulkan ระบบจะส่งต่อการเรียก API ไปยังโฮสต์โดยตรง

launch_cvd --gpu_mode=gfxstream

เวอร์กล์

หากต้องการใช้โหมดกราฟิกที่มีการเร่งโดย Virgl ให้เปิดอุปกรณ์ Cuttlefish ในเครื่องของคุณ ที่มีธง --gpu_mode=drm_virgl

launch_cvd --gpu_mode=drm_virgl

เมื่อใช้โหมดกราฟิกแบบเร่งของ Virgl ระบบจะแปลการเรียก OpenGL API ไว้ในการเป็นตัวแทนระดับกลาง (ดู Gallium3D) ระบบจะแจ้งให้โฮสต์และ ไลบรารี virglrenderer เปิดอยู่ โฮสต์จะแปลการนำเสนอระดับกลางกลับไปยังการเรียก API ของ OpenGL