מערכת Android תומכת ב-Vulkan, שהוא API חוצה פלטפורמות עם תקורה נמוכה לגרפיקה תלת-ממדית עם ביצועים גבוהים. בדומה ל-OpenGL ES (GLES), Vulkan מספקת כלים ליצירת גרפיקה באיכות גבוהה בזמן אמת באפליקציות. היתרונות של שימוש ב-Vulkan כוללים הפחתה בעומס יתר של CPU ותמיכה בשפה SPIR-V Binary Intermediate.
ספקי מערכות על שבב (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 | ספרייה מקורית, 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
) atplatform/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.