מנהל ההתקן של וולקן משתמש כעת ב- backo של ACO לבנות של Valve

בבסיס הקוד המשמש ליצירת גרסת Mesa 20.2, הנהג RADV, וולקן לשבבי AMD עבר למגב ברירת מחדל לקומפילציה צלליות »ACO«, שפותחה על ידי Valve כחלופה למהדר LLVM Shader.

שינוי זה צוין נעשה בתום השגת עלייה בפריון המשחקים וצמצום זמן ההשקה שלו.

השינוי מבקר ה- RADV אל ה- backend החדש היה אפשרי לאחר שהגיע לשיוויון בפונקציונליות ACO עם ה- backend המפותח של AMD עבור מנהל ההתקן AMDGPU, שממשיך להשתמש במנהל ההתקן RadeonSI OpenGL.

בדיקה על ידי Valve הראתה ש- ACO מהירה כמעט כפליים ממהדר ה- AMDGPU shader build ומדגימה עלייה ב- FPS בחלק מהמשחקים בעת הפעלה במערכות עם מנהל ההתקן RADV.

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

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

החלק האחורי של ACO שואפת להבטיח שהקוד ייווצר בצורה האופטימלית ביותר אפשרי עבור הצללות אפליקציות למשחק ולהשיג מהירות אוסף גבוהה מאוד.

ACO זה כתוב ב- C ++, פיתח תוך התחשבות בתחולתיות לאוסף JIT, והשתמש במהירים כדי לחזור על מבני נתונים, הימנעות ממבנים מבוססי מצביע כמו רשימות מקושרות ומחרוזות משימוש ב- def. ייצוג הביניים של הקוד מבוסס לחלוטין על SSA (Single Static Allocation) ומאפשר הקצאת רשומות, תוך חישוב מדויק של הרשומה על סמך ההצללה.

ייצוג הביניים של הקוד מבוסס לחלוטין על SSA (Single Static Allocation) ומאפשר הקצאת רשומות, תוך חישוב מדויק של הרשומה על סמך ההצללה.

כרגע רק פיקסלים נתמכים (שברים) ולחשב צלליות על GPUs AMD נפרדים (dGPU VI +). עם זאת, ACO כבר אוספת נכון צלליות לכל המשחקים שנבדקו, כולל צלליות מורכבות מ- Shadow of the Tomb Raider ו- Wolfenstein II.

אב הטיפוס המוצע של ACO למבחן הוא מהיר כמעט כפליים ממהדר ההצללה של AMDGPU ומדגים עלייה ב- FPS בחלק מהמשחקים כאשר הם מופעלים על מערכות עם בקר RADV.

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

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

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

לבסוף, זה גם כן חשוב לציין כי כרגע ACO עובדת רק עבור בקר ה- Mesa RADV Vulkan. אך מפתחי ACO אישרו כי הצעד הבא שלהם יהיה להתחיל לעבוד על הרחבת יכולות ACO לתמיכה במנהל ההתקן של OpenGL RadeonSI, כך שבעתיד ובשביל מנהל התקן זה, ACO תוכל להחליף את מהדר ברירת המחדל של LLVM. .

כמה אלו שמעדיפים להמשיך עם ה- backend ששימש בעבר מהמהדר LLVM Shader, הם יכולים לחזור אליו, הם רק צריכים לשנות משתנה.

המשתנה הסביבתי המסופק לביצוע שינוי זה הוא "RADV_DEBUG = llvm".


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

תגובה, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   משתנה דיג'ו

    ואיך משתמש בוחר עם איזה backend להריץ משחק? אילו קבצים יש לו לשנות?