מערכת ההפעלה Android תומכת ב-Vulkan, ממשק API בפלטפורמות שונות עם תקורה נמוכה לגרפיקה תלת-ממדית עם ביצועים גבוהים. בדומה ל-OpenGL ES (GLES), Vulkan מספק כלים ליצירת גרפיקה באיכות גבוהה בזמן אמת באפליקציות. היתרונות של שימוש ב-Vulkan כוללים צמצום התקורה של ה-CPU ותמיכה בשפת הביניים הבינארית SPIR-V.
ספקי מערכות על שבב (SoC), כמו ספקי חומרה עצמאיים (IHV) של GPU, כותבים מנהלי התקנים של Vulkan ל-Android. יצרני ציוד מקורי משלבים את הדרייברים ההאלה במכשירים ספציפיים. לפרטים על האינטראקציה של הדרייבר של Vulkan עם המערכת, על אופן ההתקנה של כלים ספציפיים ל-GPU ועל דרישות ספציפיות ל-Android, אפשר לעיין במאמר בנושא הטמעה של Vulkan.
מפתחי אפליקציות משתמשים ב-Vulkan כדי ליצור אפליקציות שמבצעות פקודות ב-GPU עם תקורה נמוכה משמעותית. בנוסף, Vulkan מספק מיפוי ישיר יותר ליכולות שנמצאות בחומרת גרפיקה עדכנית בהשוואה ל-EGL ול-GLES, וכך מצמצם את הסיכויים לבאגים בדרייבר ומקצר את זמן הבדיקה של המפתחים.
מידע כללי על Vulkan זמין בסקירה הכללית על Vulkan או ברשימת מקורות המידע.
רכיבי Vulkan
התמיכה ב-Vulkan כוללת את הרכיבים הבאים.

איור 1. רכיבי Vulkan
| שם הרכיב | ספק | תיאור |
|---|---|---|
| שכבות אימות של Vulkan | Android (ב-NDK) | ספריות שמשמשות במהלך פיתוח אפליקציות Vulkan כדי למצוא שגיאות בשימוש של האפליקציה ב-Vulkan API. אחרי שנמצאו שגיאות בשימוש ב-API, הספריות האלה מוסרות. |
| Vulkan Runtime | Android | ספריית Native, libvulkan.so, שמספקת Native API של Vulkan.רוב הפונקציונליות של Vulkan Runtime מיושמת על ידי דרייבר שמסופק על ידי ספק ה-GPU. Vulkan Runtime עוטף את הדרייבר, מספק יכולות יירוט של API (לניפוי באגים ולכלים אחרים למפתחים) ומנהל את האינטראקציה בין הדרייבר לבין התלויות בפלטפורמה. |
| הדרייבר של Vulkan | SoC | מיפוי של Vulkan API לפקודות GPU ספציפיות לחומרה ואינטראקציות עם הדרייבר של הגרפיקה של הליבה (kernel). |
רכיבים שעברו שינוי
BufferQueue ו-Gralloc תומכים ב-Vulkan:
- BufferQueue. עוד ערכי מטיפוסים בני מנייה (enum) ו-methods ב-BufferQueue ובממשק
ANativeWindowמאפשרים ל-Vulkan Runtime להתחבר ל-BufferQueue דרךANativeWindow. - Gralloc. ממשק אופציונלי מאפשר ל-Gralloc לגלות אם אפשר להשתמש בפורמט מסוים בשילוב מסוים של יצרן/צרכן בלי להקצות מאגר נתונים זמני.
פרטים על הרכיבים האלה מופיעים במאמר בנושא BufferQueue ו-gralloc. פרטים על ANativeWindow מופיעים במאמר בנושא EGLSurfaces ו-OpenGL ES.
מקורות מידע
ריכזנו כאן כמה מקורות מידע שיעזרו לכם להבין טוב יותר את Vulkan:
-
Vulkan Loader (
libvulkan.so) ב-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. כולל אירועים, תיקונים, מדריכים ועוד כתבות חדשותיות שקשורות ל-Vulkan.