DirectX 12 שוחרר לצד Windows 10 ב-2015. עם שחרורו, DirectX 12 של מיקרוסופט הוביל עידן חדש עבור גיימרים ומפתחי משחקים. DirectX 12, המסוגל להפחית את תקרת המעבד תוך שיפור ביצועי ה-GPU, עשה לעצמו שם במהירות.
עם זאת, האם הגדלת הביצועים שלך באמת פשוטה כמו מעבר מ-DirectX 11 ל-DirectX 12? בואו לגלות על ידי הסתכלות על ההבדלים בין DirectX 11 ל-12.
מהו DirectX של מיקרוסופט?
כפי שהוסבר ב סקירה כללית שלנו על Microsoft DirectX, DirectX הוא אוסף של ממשקי API המשמשים לטיפול במשימות הקשורות למולטימדיה. זה כולל תכנות משחקים בפלטפורמות מבוססות מיקרוסופט כמו Windows ו-Xbox. כדי לספק קצת הקשר, בואו נדבר בקצרה על ממשקי API.
ממשק תכנות יישומים (API) מאפשר לשתי תוכנות מחשב או יותר לתקשר זו עם זו, עליהן אנו דנים ב הסקירה הכללית שלנו של ממשקי API. תחשוב על זה כמו טלפון. אם אמא שלך שולחת לך הודעת טקסט עם רשימת מכולת, הטלפון שלך יקבל את הנתונים האלה ויציג אותם עבורך. זה בעצם API.
מה ההבדלים בין DirectX 11 ל-DirectX 12?
אז מה ההבדלים בין DirectX 11 ל-DirectX 12? במילים פשוטות, DirectX 12 היא הגרסה העדכנית ביותר של DirectX. אחד ההבדלים הבולטים ביותר בין השניים הוא האופן שבו הם מתקשרים עם החומרה שלך. רוב המשחקים שפותחו עם DirectX 11 משתמשים רק בין שניים לארבעה ליבות מעבד. אחת הליבות הללו מוקדשת בדרך כלל כדי לומר ל-GPU מה לעשות.
לאחר מכן, המשחק משתמש בליבות הנותרות כדי לטפל בהגדרות שונות עתירות מעבד כמו חלקיקים של משחק או מרחק ציור. מצד שני, DirectX 12 מפזר את עומס העבודה של מעבד על פני מספר ליבות וגם מאפשר לכל ליבה לדבר עם ה-GPU בו-זמנית.
DirectX 12 מגיע גם עם כמה פעמונים ושריקות מהודרים. זה כולל מחשוב אסינכרוני ואובייקטי מצב צינור (PSOs). מחשוב אסינכרוני מגביר את ניצול ה-GPU בכך שהוא מאפשר לעומסי עבודה מרובים לעבוד במקביל. זה בעצם פותח את מלוא הפוטנציאל של ה-GPU שלך.
מלבד עיבוד גרפי, ה-GPU שלך אחראי לטיפול במגוון רחב של משימות אחרות, כגון הפעלת אלגוריתמים של למידת מכונה. עם DirectX 11, ה-GPU יכול לבצע רק אחת מהמשימות הללו בכל פעם ובסדר מסוים. כאשר זה מתרחש, הביצועים סובלים מכה מכיוון שכל משאבי ה-GPU שלך אינם בשימוש.
תחשוב על זה כמו מלצר במסעדה. כאשר מלצר מקבל את ההזמנה שלך לראשונה, הוא שואל אותך מה תרצה לשתות קודם. ברגע שאתה מקבל את המשקאות שלך, הם שואלים אותך מה תרצה למנה העיקרית. ההזמנה שלך מתבצעת בשלבים. המלצר לא מתכוון לשאול אותך מה תרצה לקינוח לפני שתאכל את המנה העיקרית שלך. אמנם זה יעיל, אבל זה לא יעיל כפי שהוא יכול להיות.
במחשוב, כל אחת מהמשימות של המלצר תטופל על ידי משאב GPU אחר. עד שתקבל את המשקה שלך, משאבי ה-GPU הדרושים כדי לקבל את הזמנת המנה העיקרית שלך יהיו בטלים. עם המחשוב האסינכרוני של DirectX 12, המלצר יוכל לקבל את ההזמנה שלך בבת אחת כמו בשרשרת מזון מהיר. זה ממקסם את השימוש ב-GPU ומשפר את ביצועי המשחקים שלך.
DirectX 12 הציג גם PSOs. עם DirectX 11, כאשר הגיאומטריה של המשחק מוגשת ל-GPU ל לעיבוד, מגוון הגדרות חומרה אחראיות לפירוש ולעיבוד זה נתונים. זה מכונה הצינור הגרפי והוא זרימת כניסות ויציאות נתונים המתרחשות בזמן שה-GPU שלך מעבד מסגרות. עם זאת, צינור הגרפיקה של DirectX 11 אינו מושלם.
צינור זה מכיל אוסף של מצבים שונים, כולל מצב רסטר, מצב מיזוג ומצב סטנסיל עומק, בין רכיבים נוספים. ב-DirectX 11, יש תלות בין המצבים השונים הללו. כתוצאה מכך, לא ניתן להשלים מצב אחד עד להגדרת המצב הקודם. זה מקטין את ניצול ה-GPU ומגדיל את תקורה של המעבד במחיר של ביצועים.
כדי לעקוף את זה, DirectX 12 הציג PSOs, שהם אובייקטים שמתארים את המצב של כל הצינור הגרפי. PSOs הם כמו בקבוק שמכיל את המצבים והרכיבים השונים הדרושים ליצירת תמונה. זה מאפשר ל-GPU לעבד מראש כל מצב תלוי במקום צורך לחשב מחדש כל הזמן מצבים על סמך צינור הגרפיקה הנוכחי.
זה מקטין באופן משמעותי את תקורה של המעבד שנמצא ב-DirectX 11 ומשפר את הביצועים. אז איך בעצם נראה ההבדל הזה? ובכן, לפי מיקרוסופט, DirectX 12 מפחית את תקרת המעבד בעד 50 אחוז ומשפר את ביצועי ה-GPU ב-20 אחוזים. למרות שאלו שיפורים מהותיים, זה לא אומר שתראה את אותן תוצאות.
מדוע מעבר מ-DirextX 11 ל-DirectX 12 אינו פשוט
DirectX 11 שוחרר לראשונה עבור Windows Vista ב-27 באוקטובר 2009. אז, עם DirectX 12 בעקבות ב-2015, זה פער של שש שנים בין DirectX 11 ל-DirectX 12. במהלך תקופה זו, אלפי משחקים פותחו באמצעות DirectX 11. לרוע המזל, המעבר מ-DirectX 11 ל-DirectX 12 הוא הכל מלבד קל.
DirectX 11 הוא מה שנקרא API ברמה גבוהה. במילים פשוטות, ממשקי API ברמה גבוהה קלים יותר למפתחים לעבוד איתם. התוצאה היא משחקים יציבים, מלוטשים וניתנים להפעלה. מצד שני, DirectX 12 הוא API ברמה נמוכה והוא חיה שונה בהשוואה ל-DirectX 11. אמנם הוא מאפשר למפתחים לכוונן אופטימיזציה ברמה פרטנית, אך הוא גם דורש ידע נרחב לשימוש.
עם זאת, משחק שפותח ב-DirectX 12 עלול להסתיים בביצועים גרועים יותר בהתאם לידע של המפתח על ה-API. ישנם שיפורים שמגיעים עם DirectX 12, אבל זה באמת מסתכם עד כמה מפתח יכול ליישם את זה. מסיבה זו, הרבה מפתחים בוחרים להיצמד לממשקי API ברמה גבוהה כמו DirectX 11.
האם לבחור ב-DirectX 11 או ב-DirectX 12?
התשובה תלויה בכמה דברים, כמו איזה משחק אתה מנסה להפעיל. לדוגמה, Guild Wars 2 פועל ב-DirectX 11. גם אם מערכת ההפעלה והחומרה שלך משתמשות ב-DirectX 12, לא תהיה לך אפשרות לבחור ב-DirectX 11 ב-Guild Wars 2 מכיוון שהמשחק אינו תומך בו. זו לחלוטין החלטה של היזם, ArenaNet.
תאמינו או לא, עברו תשע שנים עד ל-ArenaNet לבצע את המעבר מ-DirectX 9 ל-DirectX 11. עם זאת, ישנם כמה משחקים שתומכים גם ב-DirectX 11 וגם ב-DirectX 12. Fortnite (קרא גיליון הרמאות של Fortnite שלנו), לדוגמה. באמצעות הגדרות המשחק, משתמשים יכולים לעבור בין שתי הגרסאות. לסיכום, לא כל משחק תומך גם ב-DirectX 11 וגם ב-DirectX 12. עבור אלה שכן, החלף בין השניים וקבע בעצמך איזה ביצועים טובים יותר במחשב שלך.
אם אתה יכול לבחור בין DirectX 11 ל-DirectX 12 יהיה תלוי גם בחומרה שלך. כמעט כל GPU מודרני יתמוך ב-DirectX 12, אבל לא ניתן לומר את אותו הדבר לגבי GPUs ישנים יותר כמו Radeon HD 4870. שוחרר בשנת 2008, GPU זה תומך רק עד DirectX 10. המשמעות היא שהוא לא יוכל להריץ את רוב המשחקים המודרניים, הפועלים באמצעות DirectX 11 ו-DirectX 12.
האם DirectX 12 הבחירה הנכונה עבורך?
בסך הכל, המעבר מ-DirectX 11 ל-DirectX 12 אינו שחור ולבן כפי שהוא נשמע. זה תלוי במגוון גורמים כמו חומרה, תוכנה, מערכת הפעלה והאם בכלל משחק תומך בשניהם. כל אלה צריכים להיחשב לפני קבלת החלטה, וסביר להניח שזה יהיה נכון גם לדורות הבאים של DirectX.