תמיכה במנוע המשחק

מנועי משחקים פופולריים חוצי-פלטפורמות תומכים ב-Vulkan כבר זמן מה. עם זאת, בגלל רמות שונות של תמיכה במכשירים, מנועי המשחק האלה הטמיעו דרכים להוסיף לרשימת ההיתרים מכשירים טובים ולחסום מכשירים גרועים ידועים.

אתם יכולים להתחיל מרשימת ברירת המחדל של המנועים האלה ולאפשר למנוע להשתמש אוטומטית ב-Vulkan במכשירים נתמכים ולחזור ל-OpenGL ES במכשירים לא נתמכים.

איך משתמשים ב-Vulkan

מגדירים את מנוע המשחק כדי להפעיל את Vulkan במכשירי Android נתמכים ולנהל את התנהגות הגיבוי.

Unity

כדי להפעיל בחירה אוטומטית של מכשירים ב-Unity, פועלים לפי השלבים להגדרת Auto Graphics API.

אפשר להשתמש ב-VkQuality Unity engine plugin כדי לקבל המלצות לגבי ממשק ה-API של הגרפיקה שהמשחק צריך להשתמש בו במכשיר ספציפי בזמן ההפעלה.

Unreal Engine

כדי להפעיל בחירה אוטומטית של מכשירים ב-Unreal Engine, פועלים לפי השלבים לתמיכה ב-Vulkan. כשבוחרים גם באפשרות Support Vulkan וגם באפשרות Support OpenGL ES 3.2, ‏ Unreal משתמש ב-Vulkan כברירת מחדל. אם המכשיר לא תומך ב-Vulkan, ‏ Unreal חוזר ל-OpenGL ES 3.2.

אם אתם משתמשים בתכונות ספציפיות של Vulkan שידוע שהן פועלות בצורה לא תקינה במכשירים מסוימים, אתם יכולים להתאים אישית את קובץ BaseDeviceProfile.ini כדי להחריג את המכשירים האלה. מידע נוסף מופיע במאמר התאמה אישית של פרופילי מכשירים ושינוי גודל ב-Android. חשוב לזכור לעדכן את הקובץ BaseDeviceProfile.ini. יכול להיות שמנהלי התקנים חדשים יתקנו בעיות במכשירים שכבר ידועות, ולכן כדאי לכם ליהנות מהאופטימיזציות שתקבלו ממנהלי התקנים מעודכנים.

איך בודקים את רמת dEQP

תוכנית האיכות drawElements (dEQP) היא חבילת מקרים לבדיקה של תאימות שמאמתת את היכולות של Vulkan במכשיר ואת יציבות מנהל ההתקן. בדיקת רמת ה-dEQP של המכשיר (vk_deqp_level) מבטיחה שמנהל ההתקן של Vulkan עומד בתקני היציבות המינימליים, ועוזרת לכם להימנע מבעיות במנהל ההתקן ומפריטי מידע חזותיים (artifacts) לפני הפעלת Vulkan.

Unity

כדי להפעיל את Vulkan בצורה בטוחה, בודקים את vk_deqp_level במכשיר Android באמצעות התוסף VkQuality של מנוע Unity.

לא אמיתי

בודקים את vk_deqp_level במכשיר Android ב-Unreal Engine באמצעות הקובץ DEQP_UPL.xml.

כדי להשתמש בקובץ, מורידים את DEQP_UPL.xml ורושמים אותו בקובץ Build.cs של הפרויקט:

if (Target.Platform == UnrealTargetPlatform.Android)
{
    AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(ModuleDirectory, "DEQP_UPL.xml"));
}

כשמפתחים ומריצים את המשחק, תוצאת הבדיקה של dEQP מוצגת ב-Logcat:

UE_RHI_Selector: ==================================================
UE_RHI_Selector: Device Model   : Pixel 10 Pro XL
UE_RHI_Selector: OS Version     : Android 16
UE_RHI_Selector: API Level      : 36
UE_RHI_Selector: Device dEQP    : 0x7e90301 (2025-03-01)
UE_RHI_Selector: Target dEQP    : 0x7e80301 (2024-03-01)
UE_RHI_Selector: Modern Vulkan? : true
UE_RHI_Selector: ==================================================