Vulkan

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

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