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 כוללת את הרכיבים הבאים.
איור 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
) 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.