DirectX 10 – מי צריך את זה?
את השגעון ל-DirectX 10 ולכרטיסים המופלאים שתומכים בו התחילו הטריילרים למשחקים העתידיים, כגון Crysis, BioShock ו-Alan Awake אשר הציגו גרפיקה מדהימה ודחפו אנשים רבים לרכוש כרטיסי מסך חדשים, כדי להיות מוכנים מבעוד מועד. גרפיקה זו מתאפשרת בזכות אותו DX10, גרסתו העשירית של ממשק התכנות של מיקרוסופט עבור כרטיסי מסך. הגרסה החדשה מאפשרת לפתח לא רק אלמנטים גרפיים מסובכים וריאליסטיים יותר, אלא גם לייעל את העבודה של כרטיס המסך מול המעבד, כך שהאחרון מאבד אט אט מחשיבותו בעת עיבוד תלת מימד.
למזלה של ATI, שהצטרפה מאוחר מאוד למסיבה, עדיין לא שוחררו משחקים משמעותיים המנצלים את הממשק התכנותי החדש. למעשה, נכון ליום השקת כרטיס ה-HD 2900XT לא הושק ולא משחק אחד שכזה, ורק לאחר ההשקה ראינו את הניצנים הראשונים.
כאמור, ממשק ה-DX10 מייעל את כל תהליך העיבוד בכך שהוא מצמצם את השפעתו של המעבד הראשי מאידך ודורש פחות משאבים מחד. ניתן לתאר את התוצאה באמצעות התרשים הבא שהכינו עבורנו ב-AMD:
היעילות המשופרת של הממשק הגרפי מאפשרת להשלים את אותו תהליך עיבוד בזמן קצר יותר וכך לקבל כח עיבוד רב יותר (ניתן לבצע יותר חישובים באותו פרק זמן).
מעבר לכך, משום ש-DirectX 10 מאפשר חלוקה של משאבי העיבוד בין עיבוד תלת מימד "קלאסי" לבין עיבוד פיזיקלי על גבי אותו מעבד (או אפילו להשתמש באותו שבב בכדי לבצע פעולות עיבוד עבור כמה מערכות הפעלה או משחקים במקביל), נדרשת מהמעבד הגרפי יכולת וירטואליזציה, בדומה למעבדים של אינטל או AMD – המעבד נדרש לעבור בין משימות שונות לחלוטין בצורה מיידית ויעילה.
נושא נוסף שהופך את ה-GPU החדש לרכיב הקרוב יותר ל-CPU המסורתי הוא היכולת, או ליתר דיוק הדרישה של DirectX 10, לעשות שימוש בזיכרון ה-RAM של המערכת ובדיסק הקשיח כזיכרון וירטואלי עבור כרטיס המסך (בדומה למה שאנו מכירים מעולם מערכות ההפעלה).
מהו החידוש אתם שואלים? ובכן, כעת יוכלו יצרניות המשחקים להשתמש בכמויות זיכרון ענקיות לטובת הטקסטורות ובעזרת אלגוריתמים יעילים אין גבול לרמת הריאליזם אליה ניתן יהיה להגיע במשחקים.
על נושא ה-Unified Shaders דיברנו בביקורת הקודמת שלנו על כרטיסי ה-DirectX 10 של NVIDIA אך נזכיר כאן את העניין שוב. באופן מפתיע, ה-Unified Shaders אינם דרושים עבור DirectX 10 אלא רק הופכים את התכנות עם הממשק למעט יותר נוח, לכן בחרו שתי החברות לשלב אותם בדור הכרטיסים החדש.
באופן עקרוני, מדובר על איחוד יכולות של המעבד הגראפי, שכן בדורות כרטיסי המסך הקודמים המעבד היה מחולק באופן גס לשתי יחידות עיבוד: Vertex Shader – יחידה האחראית על עיבוד גיאומטריית האובייקטים ו-Pixel Shader שאחראית על "צביעת" האובייקטים.
נוכל להדגים את מבנה המעבד הישן באמצעות שקף זה:
בתמונה ניתן לראות אובייקט תלת מימדי בעל הרבה קודקודים (הכריש), שמצריך מחזורי עיבוד רבים מיחידת עיבוד הקודקודים (Vertex Shader). יחד עם זאת, מכיוון שמדובר באובייקט קטן יחסית עם טקסטורות פשוטות, יחידת עיבוד הפיקסלים (Pixel Shader) כלל לא בשימוש, ופוטנציאל העיבוד שלה מתבזבז.
בתמונה השניה ניתן לראות את המקרה ההפוך, כאשר דווקא יחידת עיבוד הפיקסלים נמצאת תחת עומס על מנת לעבד את הטקסטורות המורכבות של המים, בעוד שיחידת העיבוד השניה לא נוטלת חלק בעומס.