Vulkan

‫Android תומך ב-Vulkan, ממשק API חוצה פלטפורמות עם תקורה נמוכה לגרפיקה תלת-ממדית עם ביצועים גבוהים. בדומה ל-OpenGL ES (GLES),‏ Vulkan מספקת כלים ליצירת גרפיקה באיכות גבוהה בזמן אמת באפליקציות. היתרונות של שימוש ב-Vulkan כוללים צמצום של תקורה ב-CPU ותמיכה ב-SPIR-V Binary Intermediate Language.

ספקי מערכות על שבב (SoC), כמו ספקי חומרה עצמאיים (IHV) של GPU, כותבים מנהלי התקנים של Vulkan ל-Android. יצרני ציוד מקורי משלבים את מנהלי ההתקנים האלה במכשירים ספציפיים. לפרטים על האינטראקציה של מנהל התקן של Vulkan עם המערכת, על אופן ההתקנה של כלים ספציפיים ל-GPU ועל דרישות ספציפיות ל-Android, אפשר לעיין במאמר בנושא הטמעה של Vulkan.

מפתחי אפליקציות משתמשים ב-Vulkan כדי ליצור אפליקציות שמבצעות פקודות ב-GPU עם תקורה נמוכה משמעותית. בנוסף, Vulkan מספק מיפוי ישיר יותר ליכולות שנמצאות בחומרת גרפיקה עדכנית בהשוואה ל-EGL ול-GLES, וכך מצמצם את הסיכויים לבאגים בדרייבר ומקצר את זמן הבדיקה של המפתחים.

מידע כללי על Vulkan זמין בסקירה הכללית על Vulkan או ברשימת המשאבים.

רכיבי Vulkan

התמיכה ב-Vulkan כוללת את הרכיבים הבאים.

רכיבי Vulkan

איור 1. רכיבי Vulkan

שם הרכיב ספק תיאור
שכבות אימות של Vulkan ‫Android (ב-NDK) ספריות שמשמשות במהלך פיתוח אפליקציות Vulkan כדי למצוא שגיאות בשימוש של האפליקציה ב-Vulkan API. אחרי שנמצאו שגיאות בשימוש ב-API, הספריות האלה מוסרות.
Vulkan Runtime Android ספריית Native‏, 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 ES.

משאבים

ריכזנו כאן כמה מקורות מידע שיעזרו לכם להבין טוב יותר את Vulkan:

  • Vulkan Loader (libvulkan.so) at platform/frameworks/native/vulkan. כולל את טוען Vulkan של Android, וגם כמה כלים שקשורים ל-Vulkan ושימושיים למפתחי פלטפורמות.
  • הטמעה של Vulkan. מיועד ל-IHVs של GPU שכותבים מנהלי התקנים של Vulkan ל-Android ול-OEMs שמשלבים את מנהלי ההתקנים האלה במכשירים ספציפיים. הוא מתאר איך מנהל התקן של Vulkan מקיים אינטראקציה עם המערכת, איך צריך להתקין כלים ספציפיים ל-GPU ומהן דרישות ההטמעה הספציפיות ל-Android.
  • מדריך ל-Vulkan Graphics API המאמר כולל מידע על תחילת השימוש ב-Vulkan באפליקציות ל-Android, על הנחיות העיצוב של פלטפורמת Vulkan ל-Android, על השימוש בקומפיילרים של תוכנות ההצללה (shader) של Vulkan ועל השימוש בשכבות אימות כדי להבטיח יציבות באפליקציות שמשתמשות ב-Vulkan.
  • Vulkan News. כולל כתבות חדשותיות על אירועים, תיקונים, מדריכים ועוד בנושא Vulkan.