“DirectX must die!”, כך מסר מנהל יח"צ של AMD (לא באמת).
מלחמת הקונסולות נגד המחשב האישי כנראה לא תגמר לעולם. היא רק תחריף ותפלג את המחנות עוד יותר. גם המלחמה בין סוגי הקונסולות לא עתידה להסתיים בעתיד הקרוב. לרוב, עיקרם של הויכוחים עוסקים בנושאי גרפיקה וביצועים, אבל איך באמת אפשר להשוות מחשב חדשני חמוש בכרטיס גראפי עם 512 מעבדי זרימה כדוגמת ה-GTX580 כנגד מעבד ה-Xenos של ה-X360 שמגיע עם 48 מעבדי זרימה, או ארכיטקטורת ה-NV47 מזדקנת, ארכיטקטורה המזכירה את זו המצוייה בכרטיסים מסדרת GeForce 7, שנמצאת ב-PS3? ויותר חשוב מזה – איך הקונסולות מצליחות להציג גרפיקה המתקרבת לזו שיכול להציג מחשב משחקים חדשני?
כמובן שהקונסולות לא מגיעות לרזולוציות תצוגה או כמות המסכים אליה כרטיס מסך מודרני יכול לפצל את התצוגה – אך הן עדיין מציגות ביצועים לא רעים בכלל. קחו לדוגמה את ה-Xbox 360 בת השש, איך היא מריצה Crysis 2 בכלל?
התשובה לכך טמונה בשכבת אפליקציה המבודדת את מפתחי המשחקים מהחומרה ("ברזל") של המחשב – ה-DirectX. בעוד שבקונסולות יכולים המפתחים לגשת לחומרה עצמה ולנצל כל טיפת ביצועים זמינה ולנהל את המשאבים כפי שהם רואים לנכון, ובעת פיתוח לפלטרורמת המחשב האישי המפתחים עובדים רק מול ממשק ה-API (ר"ת Application programming interface) שמציע להם ה-DirectX, תלוי בגירסה איתה הם עובדים. נכון, הגרפיקה השתפרה וקיבלנו אפקטים חדשים ומגניבים ואף תוספת לביצועים – אך עדיין לא הגענו לרמה של שליטה ברמת החומרה שמציעות הקונסולות.
היתרון של הקונסולות טמון באחידותן. כאשר מפתחים משחק ל-PS3, לדוגמא, המפתח יודע כי כל קונסולות ה-PS3 שיריצו את המשחק יהיו זהות לחלוטין מבחינת כל רכיבי החומרה, ולכן הוא יכול להקצות ברגע נתון, למשל, 2 ליבות לעיבוד גראפיקה, ליבה להאצת אפקטים פיזיקליים ולשמור X מקום פנוי ב-XDR RAM (זכרון וירטואלי המשמש את ה-PS3). באם יפותח משחק שמתאים רק לדגם מסויים ש כרטיס מסך – הוא לא ימכור יותר מדי עותקים. לכן, המפתחים זקוקים לשכבת אפליקציה סטנדרטית שתעשה את עבודת ההתאמה עבורם לכל מעבד גראפי.
"זה מצחיק, יש לנו בערך פי 10 יותר כח עיבוד בכרטיס מסך מתקדם מאשר ב-X360 או ב-PS3, אך המשחקים לא נראים פי 10 יותר טוב. האשמה הכי גדולה נופלת, לטוב ולרע – על ה-DirectX", אמר מנהל יחסי הציבור הבינלאומי של חטיבת ה-GPU ב-AMD, ריצ'ארד הודי (Richard Huddy). עוד הוסיף כי אחת מהבקשות השכיחות ביותר שהוא מקבל ממפתחי משחקים היא "לגרום ל-API להיעלם".
"אני מניח כי זו היית אחת מנקודות המשיכה החזקות יותר של פרוייקט Larrabee למפתחים – לא החומרה, שהיית מתחממת, איטית ולא מרשימה – אלא התכנה, היכולת לקבל שליטה מלאה על המכונה, מה שמפתחי המשחקים הטובים ביותר רוצים. גישה לחומרה ברמה נמוכה מאוד תתן למפתחי המשחקים הזדמנויות לחדש וללא ספק תפעיל לחץ על מיקרוסופט".
"לעטוף אותו [את ה-DirectX] בשכבת תכנה מקנה לכם ביטחון ואבטחה", אומר הודי, "אבל היא נוטה לשדוד די הרבה מהביצועים, והכי חשוב היא מונעת מכם את ההזדמנות לחדש".
Instancing יעזור לכם לשכפל עצים | האם קרייסיס המקורי היה רץ יותר טוב ללא DirectX? |
"בקונסולות, אפשר לצייר אולי 10,000 או 20,000 גושי גיאומטריה בפריים בודד, ואפשר לעשות את זה בקצב רענון של 30-60 fps. על המחשב האישי לרוב אי אפשר לצייר יותר מ-2,000 עד 3,000 מבלי להסתבך בבעיות עם הביצועים, וזה נתון מפתיע. בנוסף, המחשב יתן לכם רק עשירית מהביצועים אם תקראו לרובץ Batch שונה עבור כל פריים".
"DirectX תומך ב-Instancing, מה שאומר שאם אתם רוצים לצייר תיבה, אתם בעצם יכולים לצייר עשר תיבות זהו באותה המהירות מבחינת ה-DirectX, אך זה לא מספיק על מנת להתחרות בכמות הגיאומטריה שהקונסולות מסוגלות לצייר. עדיין קשה לזרוק גיוון רב לתוך משחק מחשב".
כמובן, תכנות ברמת החומרה הוא לא לכולם. כריס דיליי, מפתח ומעצב ראשי בחברת Introversion שהביאה לנו, בין היתר, את המשחק Multiwinia, אמר : "אני לא רוצה שום קשר עם זה, אבל זה תלוי במה אתה מפתח. אם אתה מפתח את קרייסיס 3 או משהו דומה, אז זה בדיוק מה שאתה רוצה".
"ממשקי API מותאמים כרגע לארכיטקטורת חומרה מסויימת", אמר מייקל גלוק, מנהל תכנון ופיתוח טכני ב-Crytek, "אבל יותר ויותר מעבדים גראפיים נהפכים ל-GPGPU (ר"ת General purpose graphics processing unit) אני בספק כי נצטרך עוד פונקציות מקובעות. כבר היום טכנולוגיות כגון Rasterisation ו-Tessellation רצות דרך התוכנה ב-OpenCL בצורה יפה מאוד. זה לא יגיע לביצועים של חומרה מקובעת, אבל זה יהיה כמו שלב בדיקות, הכנה ליחידות עיבוד יעודיות. זה ייעשה על-ידי יחידת GPGPU בנקודה מסויימת".
בכל מקרה, נראה כי עתידו של ה-DirectX בשירות המחשבים האישיים כבר לא בטוח במאת האחוזים, במיוחד כשהמטרה היא גראפיקה מוציאת עיניים.