תמונות מודלפות מציעות לנו טעימה ראשונה מהשיפור הנאה בביצועים וביכולות שעתיד להביא עימו עידן ה-DirectX 12 המתקרב
מאז ההכרזה של מיקרוסופט בחודש מרץ באחרון, הרבה מפתחים וגיימרים הפכו סקרנים לגבי ביצועי ה-DX12 ויכולות ה- API החדש שיביא איתו.
דליפה מעניינת מצאה את דרכה אל הרשת וגרמה להרבה דיונים לגבי עתידה של טכנולוגית ה-DX12. הדליפה מראה תרשים של מודל ה-DX12 לעומת קודמו ה-DX11.
לאלו מכם שחדשים בתוך הגיימינג (או שהיו במשימה בחלל במהלך ה-20 שנה האחרונות), DirectX, או בקיצור DX, הוא ממשק תכנות יישומים (API) ייעודי של מיקרוסופט לגראפיקה בתלת מימד. הגרסא ה-12 במספר תהיה הגרסא הראשונה של מיקרוסופט שתציע רמת תכנות נמוכה והיא מבטיחה להיות הרבה יותר מהירה ויעילה מקודמתה, DX11.
ב-2013 היינו עדים למגמה שנוצרה בשוק הגורמת לחברות לעבור לממשקי תכנות ברמה נמוכה ובראשם AMD עם ה-Mantle. מאוחר יותר הצטרפו גם Khronos עם טכנולוגית ה-OpenGL NG, מיקרוסופט עם ה- DX12 ואפילו אפל עם ה- Metal. ככל הנראה הסיבה לשינוי המגמתי הזה היא קצב הגידול בחומרה הגראפי והמורכבות שבה. עם יכולות כל כך מתקדמות, ממשקי התכנות המתקדמים יוכלו להבין לרמות יעילות גבוהות מתמיד ושיפור ניכר ברמות הביצועים.
כמו שניתן לראות בתמונות, ה-DX12 החדש משפר את הזמנים בצורה ניכרת ומציג גם תמיכה מתקדמת בחלוקת העומסים של שכבת ה-UMD (ר"ת User-Mode Driver, השכבת שעליה בעצם רצים הדרייברים במערכת שלנו) בין מספר ליבות העיבוד.
אז מה כל זה אומר מבחינתנו? כל הטכנולוגיות הללו אמנם מציגות שיפורים ניכרים בביצועים וביעילות, שזה תמיד דבר נדרש ואף מבורך, אך אולי חשוב מכך, זה מקדם אותנו שלב אחד יותר קרוב לעיבוד תמונה בזמן אמת ברמה פוטוראליזם גבוהה כל כך עד שלא נוכל להבדיל בין משחקי המחשב לסרטי הוליווד. כמובן שעל מנת להגיע לרמה כזאת עדיין נדרשת חומרה ייעודית ואופטימלית לביצוע רינדורים שכאלה אבל עם קצב ההתפתחות של עולם החומרה אנחנו יכולים לראות את היום הזה קרוב מתמיד.
[interaction id="5499649308b0f9895128161e"]
מה זה "רמת תיכנות נמוכה"?
הכוונה ל-low level
הפיסקה האחרונה היא קצת שטויות אבל לא נורא.
בגדול זה אמור לאפשר שני דברים. פחות OVERHEAD ב CPU בטיפול וארגון הבקשות של המפתח מהAPI כדי להכין אותם לרינדור.
דבר שני, ניצול יותר יעיל של הכרטיס מסך בהזרמה של בקשות לרינדור כך שהוא לא מתעקב בגלל שהCPU לא מספיק לתת לו את הבקשות בזמן או בצורה מאורגנת.
בקיצור תוספת לכל כרטיס מסך 10-40 fps
^אתה חייב להפסיק עם הודעות הספאם חסרות ההגיון הללו, ברצינות.
לפי בדיקות שמפתחים עשו הבנתי שכמות ה-DRAW CALLS לפריים עלתה פי 10 ויותר עקב פינוי ה-CPU מהמשימה.
גן עדן למפתחים.
אפשר לבנות כל אובייקט לחלקיו ולהחזיק ספריית טקסטורות על ה-VRAM (כמה סוגי אבן, ברזל, זכוכית, בטון וכו') ולרנדר כל חלק באובייקט לפי ה"חומר" שלו.
ככה אפשר להשתמש בכמות קטנה יחסית של טקסטורות איכות ב-VRAM שיעבודו על כמות בלתי מוגבלת (תיאורטית) של אובייקטים.
זה ממש הולך לשנות את כל צורת הפיתוח.
זה לא אמור להעלות גם את הטמפרטורה של הכרטיסים?
אם כן, אנחנו עלולים להגיע למצב שכרטיסים עם קירור גבולי יאיטו את עצמם, או אפילו יותר גרוע ימותו מהר יותר.
למה שזה יעשה את זה?
חשבתי אולי יעילות בתוכנה(דריוור) תוביל לעליה בניצול החומרה.
היקש הגיוני סך הכל.
יש הבדל בין שיפור ביצועים לתוכנה קיימת דרך דרייבר משופר, שאז אתה יכול לצפות שהכרטיס יתאמץ יותר כי התוכנה מבצעת אותן פעולות בדיוק שדורשות אותו כוח מהכרטיס, ודרייבר שסוחט יותר ביצועים = יותר מאמץ, לבין שפה (או API) חדשה לחלוטין שמיועדת לכתיבת תוכנות באופן יעיל יותר, כך שאפשר להגיע נניח ב3 פעולות לאותה תוצאה שדרשה קודם 10 פעולות – ואז אתה יכול לקבל הכפלת ביצועים ללא הכפלת מאמץ.
בקיצור התשובה לא? או שהיא עדיין לא ידוע?
ברור שיהיה שיפור לעומת DX11 השאלה האם יהיה לעומת mantle שהראה שיפורים יפים על כל המעבדים.
לפי איך שזה נראה עכשיו, אני מקווה שזה ישים סוף ל-MANTLE או כל טכנולוגיה אקסלוסיבית אחרת, שהמפתחים אליה מתלוננים בדלתיים סגורות על העונש שקיבלו מהבוסים שלהם.
יעילות=כמות עבודה/זמן
אם הגברנו את היעילות זה אומר שהכרטיס עושה יותר עבודה באותו זמן (עבודה פר קלוק)
זה לא אומר שהכרטיס עכשיו יעשה יותר קלוקים זה פשוט אומר שהוא "יספיק" יותר
זה כמו להגיד שמעבדי הקור הרבה יותר חמים מהפנטיום כי הם יעילים יותר
אבל,קיים מקרה קצה שכן יעלה את כמות העבודה שהכרטיס יעשה וזה רק עם עד עכשיו במערכת מסויימת הכרטיס מסך לא עבד ב100% כי הוא הוגבל ע"י המעבד. ברגע שהפכת את העבודה של המעבד לפחות משמעותית אז אתה "משחרר" אותו מהמשוואה
מצד אחד סוף סוף יהיה שיטת תכנות נורמלית למחשב כמו שהיה לקונסולות עוד מהדור הקודם.
מצד שני עדיין נידפק כי בגלל כל ההגנות ששמים על משחקי PC (שתכלס מריצים אותה חומרה כמו קונסולה) עדיין הביצועים יהיו על הפנים.
מצד אחד באמת מרענן לראות את מיקרוסופט מזזים את התחת ומנסים להיכנס לתחום הזה.
מצד שני התחום כבר רבוי כמו שכתוב עם mantle, metal, console, openng ולא יודע מה, איך יתרגמו את זה ללינוקס (בשביל steam box ושות) ומתי נראה את זה באנדרויד…
אתה יודע שלקונסולות מפתחים (אאל"ט לרוב אפילו) ב-DirectX, נכון?
DirectX היא טכנולוגיה קניינית של מיקרוסופט ככה שרק מערכות הפעלה שלה יכולות להשתמש בזה, ככה שכל שאר הקונסולות לא משתמשים בזה. ב PS3 למשל היה להם libCGM בשביל גישת low level להאצה התלת מימדית ו PSGL בשביל משהו יותר גבוהה. ב PS4 (שמבוסס מערכת הפעלה של freeBSD) יש דריברים דומים בשם GNM ו GNMX.
מתי זה אמור לצאת? ועל איזה סדרת כרטיסים תהיה השפעה גדולה יותר?
djelectric עם לא יהיה שיפור אז מה יהיה?
אי אפשר להגיד "בקיצור כל הכרטיסים עוד 10-40FPS", זה משפט חסר הגיון לחלוטין.
הרי ידוע לך (אולי לא?) שלכרטיסי מסך שונים עם מעבדים שונים יהיו ביצועים שונים בתרחישים שונים. אין פה שום מדע מדוייק.
קונפיגורציה אחת שתביא 30FPS ב-DX11 ותביא 36FPS ב-DX12 לא תביא לא 10 ולא 40 יותר, אבל זה לא אומר שהשיפור הוא קטן, הרי שבמקרה הזה הוא 20% שלמים.
במקרים אחרים יתכן שקונפיגורציה מסויימת תפיק 150FPS גם ב-DX11 וגם ב-DX12 בשל הגבלות כאלה ואחרות. זה מאוד מאוד ספציפי וכל מקרה לגופו. צריך להמתין בסבלנות ולראות האם יהיה שיפור, איפה יהיה שיפור, כמה שיפור יהיה ובאילו נסיבות.
אנחנו גם רגילים לחשוב על ביצועים בקטע של "כרטיס X עושה 30FPS לעומ כרטיס Y שעושה 40FPS" זה בגלל כח עיבוד של הכרטיסים.
פה מדובר על קיצור זמנים ע"י יעול של הקוד עצמו. אי אפשר להשוות את השיפור בביצועים לאותו מקרה מקודם… זה כמו שנשווה מעבד I7 שרץ ב3GHZ או פנטיום 4 שרץ ב3GHZ… זה ארכיטקטורה שונה לגמרי. הI7 בנוי על "קוד" הרבה יותר יעיל
אם כבר אנלוגיות, נראה לי שהאנלוגיה שלך די רחוקה מהמציאות. אם אני מבין נכון את השיפור הנ"ל ניתן לקבל תחת הארכיטקטורה הקיימת של החומרה ולכן זה לא קשור לדור אחר של מעבדים. אם כבר זה כמו לעבור מקומפיילר אחד לקומפיילר שני ששניהם מדברים עם אותה חומרה, רק הקומפיילר השני מצליח לנצל אותה הרבה יותר טוב.
זה לא בדיוק נכון. זה יותר דומה לSSE שקיים אצל מעבדים בכמה איטרציות
יש תכונה שעובדת עם חומרה אבל גם יש דרישות מהחומרה בשביל התמיכה