D7VK 2.2 משפר את התמיכה ב-Direct3D 3 להפעלת קלאסיקות של Windows על לינוקס

  • D7VK 2.2 משפר משמעותית את התמיכה ב-Direct3D 3, מתקן בעיות במכשירים, מאגרים של ביצוע וטרנספורמציה של קודקודים.
  • העדכון גם משפר את ניהול המרקמים ואת שקיפות מקשי הצבעים ומפחית את התקורה בחלק מנתיבי Direct3D 5 ו-6.
  • D7VK 2.2 מבוסס על DXVK 3.1 וממשיך לשפר את הריצה של משחקי Windows קלאסיים באמצעות Wine ו-Proton על לינוקס.

D7VK 2.2

D7VK 2.2 זמין כעת כגרסה חדשה של שכבת תרגום הגרפיקה שנועדה להריץ משחקי Windows קלאסיים על לינוקס. הפרויקט, שנגזר מ-DXVK, מתמקד בתרגום ממשקי ה-API הישנים יותר של Direct3D 7, 6, 5 ו-3 ל-Vulkan לשימוש עם Wine ו-Proton, וגרסה חדשה זו מקדישה חלק משמעותי מעבודתה לאחד התחומים שעדיין היו להם הכי הרבה חסרונות: תמיכה ב-Direct3D 3.

העדכון מגיע שבועות ספורים לאחר D7VK 2.1 וממשיך את תהליך ההתבגרות של טכנולוגיה שמעניינת במיוחד עבור אלו שרוצים לשחק במשחקים מסוף שנות ה-90 ותחילת שנות ה-2000 על מערכות לינוקס מודרניות. בנוסף לשיפור Direct3D 3, D7VK 2.2 משלב תיקוני באגים והתאמות פנימיות רבות, והוא מבוסס על גרסת DXVK 3.1 האחרונה.

D7VK 2.2 מתמקד ב-Direct3D 3

התכונה החדשה העיקרית ב- D7VK 2.2 קשורה ל-Direct3D 3, ממשק API שנפל מעט מאחורי הטכנולוגיות הישנות האחרות הנתמכות על ידי הפרויקט. למרות שמשחקי Direct3D 3 שהמפתח הצליח לאסוף ולבדוק כבר עבדו עם D7VK, עדיין היו מספר מקרי קצה והתנהגויות שלא יושמו כהלכה.

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

עם גרסה זו, המפתח תיקן חלק גדול מהיישום של Direct3D 3 כדי לקרב אותו לרמת הבשלות שהושגה על ידי ממשקי ה-API האחרים התואמים ל-D7VK.

התנהגות התקני D3D3 תואמת את המקור

אחד השינויים הטכניים כרוך בביצוע מחדש של מערכת ספירת ההפניות עבור התקני Direct3D 3. D7VK 2.2 משנה מנגנון זה כך שהתנהגותו תואמת את זו של יישום ה-API המקורי.

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

המימוש החדש מפחית אפוא את הסיכוי שכותרים מסוימים לא יצליחו לנהל את התקני הגרפיקה שלהם באופן ש-D7VK לא ציפה לו.

D7VK 2.2 מציג שיפורים בשקיפות באמצעות מפתח צבעים

D7VK 2.2 משנה גם את ניהול מקש הצבע בהתקני Direct3D 3 טהורים. עד כה, הפרויקט השתמש במודל פשוט מאוד שבו פונקציה זו נותרה תמיד מופעלת בנסיבות מסוימות.

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

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

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

מקרי גבול במאגרי ביצוע מתוקנים

היבט חשוב נוסף של D7VK 2.2 הוא עדכון אימות מאגר הביצוע של Direct3D 3. הפרויקט ארגן מחדש חלק מלוגיקה זו כדי לטפל במקרי קצה שונים שזוהו במהלך הבדיקות.

כדי לאמת את ההתנהגות הצפויה של ה-API, המפתח הצליח גם להסתמך על בדיקות Wine הקשורות ספציפית ל-Direct3D 3. בדיקות אלו מאפשרות להשוות את ההתנהגות של D7VK לזו הצפויה ממימוש תואם ולזהות הבדלים שעשויים לחמוק מעיניו בעת שימוש במשחקים ידועים בלבד.

עבודה זו בעלת ערך רב במיוחד עבור API ישן כל כך, שבו הכותרות הזמינות לבדיקה הן נדירות ולא תמיד מכסות את כל האפשרויות של המימוש המקורי.

עמידות רבה יותר עבור טקסטורות Direct3D 5 ו-3

העדכון אינו מוגבל ל-Direct3D 3. D7VK 2.2 משפר גם את הטיפול בטקסטורות בהן משתמש Direct3D 5 ו-Direct3D 3 כדי למנוע ממשטחים מתחת לפני השטח לצאת מהטווח בזמן שהם עדיין בשימוש.

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

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

D7VK 2.2 מתקן גם בעיות טרנספורמציה ומטריצות

D7VK 2.2 גם מתקן באג הקשור לשינוי של מאגרים של ביצוע Direct3D 3. הבעיה נגרמה עקב קביעה שגויה של פורמט FVF המשמש עבור קלט קודקוד.

תוקנה גם בעיה בחישובי מטריצת הקרנה מדור קודם. הבאג התגלה באמצעות בדיקת Wine שלא התנהגה כצפוי וייתכן שהשפיעה לרעה על יישומי Direct3D 6, 5 ו-3 מסוימים.

שינויים אלה מדגימים עוד יותר את החשיבות של בדיקות תאימות עבור D7VK. רבות מהבעיות בממשקי API גרפיים ישנים יותר אינן מופיעות בהכרח במשחקים הפופולריים ביותר, אלא בשילובים ספציפיים של תכונות שיכולים להישאר מוסתרים במשך שנים.

פחות תקורה בנתיבי ציור מדור קודם

הגרסה החדשה גם מארגנת מחדש את נתיב הציור Begin() / Vertex() / End() בשימוש על ידי Direct3D 6 ו-Direct3D 5. השינוי מפחית את צריכת הזיכרון ומספק שיפור קטן בביצועים.

שוב, Frogger הוא בין המשחקים שיכולים להפיק תועלת מהשינוי הזה. אמנם אופטימיזציה זו לא תכפיל את ה-FPS של כל כותרי הרטרו, אך היא כן עוזרת להפחית חלק מההוצאות המצטברות על המסלולים שבהם השתמשו ממשקי API ישנים יותר.

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

D7VK 2.2 חלק מ-DXVK 3.1

מאפיין חשוב נוסף של גרסה זו הוא ש-D7VK 2.2 הוחלף על ידי DXVK 3.1 . זה מאפשר לפרויקט ליהנות מבסיס עדכני יותר ולשמור על יישומו בהתאם להתפתחות של DXVK.

הקשר בין שני הפרויקטים חשוב במיוחד. D7VK מקורו כפיצול של DXVK, שהתמחה בממשקי API ישנים יותר של Direct3D שלא מכוסים על ידי שימוש סטנדרטי ב-DXVK, בעוד ששניהם משתמשים ב-Vulkan כיעד לקריאות גרפיקה שמקורן ב-Windows.

הודות לקשר זה, השיפורים המבניים שמגיעים ל-DXVK יכולים לשמש בסיס להמשך התפתחותו של D7VK מבלי שיהיה צורך לפתח מאפס את כל התשתית הדרושה לתקשורת עם Vulkan.

פרויקט שנועד להחיות משחקים קלאסיים

ל-D7VK יש מטרה ספציפית מאוד בתוך מערכת האקולוגית של לינוקס: לאפשר למשחקי Windows המשתמשים ב-Direct3D 7, 6, 5 ו-3 לרוץ באמצעות Vulkan. זה מבדיל אותו מ-DXVK, שמתמקד בעיקר ב-Direct3D 9, 10 ו-11.

חשיבות הפרויקט גוברת כשמדובר בכותרים התלויים בטכנולוגיות גרפיקה ש-Wine אינה מיישמת ישירות באותו אופן או שיכולים להפיק תועלת מתרגום מדויק יותר ל-Vulkan.

על ידי שילוב של D7VK עם Wine או Proton, משתמשי לינוקס יכולים לשחזר כמות ניכרת של תוכנה מסוף המאה ה-20 ותחילת המאה ה-21 מבלי בהכרח להזדקק להתקנה ישנה של Windows.

עבור אלו המשתמשים ב-Wine או Proton כדי לשחק משחקים על לינוקס ומעוניינים להחיות כותרים קלאסיים, D7VK 2.2 מחזק את אחד החלקים החשובים ביותר בתשתית התאימות. ובעוד שרבים מהשיפורים שלו עשויים להיות בלתי נראים למשתמש, כל תיקון מגדיל את הסיכויים שמשחק אחר שאבד בעידן Direct3D 3, 5, 6 או 7 יוכל שוב לתפקד כראוי על מערכת לינוקס מודרנית.


הוסף כמקור מועדף בגוגל