Vulkan

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

רכיבי 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) 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.