מיקרוסופט פרסמה את קוד המקור של שכבת D3D9On12 המשמשת לתרגום פקודות Direct3D 9 ל- Direct3D 12

חדשות טובות פורסמו ממיקרוסופט וזה לאחרונה הודיע ​​על כך באמצעות פוסט בבלוג פתיחת קוד המקור של שכבת D3D9On12 עם יישום מכשיר DDI (Device Driver Interface), המתרגם פקודות Direct3D 9 (D3D9) לפקודות Direct3D 12 (D3D12).

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

עבר זמן מאז שהזכרנו לאחרונה את שכבת המיפוי D3D9On12. כעדכון מהיר, הוא ממפה פקודות D3D9 ל- D3D12 המשמשות כממשק מנהל התקן D3D9 (DDI). בעל שכבת מיפוי זו מאפשרת ליישומי D3D9 ישנים יותר לפעול במערכות מודרניות שאולי אין להן מנהל התקן D3D9. מאז הפוסט האחרון בבלוג, הוספנו תמיכה בתוספי Alpha ל- Coverage, תיקנו כמה באגים וניקינו את בסיס הקוד לקוד פתוח.

אין ספק שזו חדשות טובות וזהו פרויקטים שונים שעובדים עם השכבה יכולים להועיל כעת, מכיוון שככזה הוא מאפשר ליישומים מדור קודם לעבוד בסביבות התומכות רק ב- D3D12, כלומר לדוגמה, זה יכול להיות שימושי ליישום D3D9 בהתבסס על הפרויקטים vkd3d ו- VKD3D-Protonמכיוון שאלו מציעים יישום Direct3D 12 עבור Linux שעובד על ידי תרגום שיחות D3D12 לממשק ה- API הגרפי של Vulkan.

D3D9On12 היא שכבה הממפה פקודות גרפיות מ- D3D9 ל- D3D12. D3D9On12 אינו יישום של ממשק ה- API של D3D9, אלא יישום של מצב המשתמש D3D9 DDI (ממשק התקן ההתקן). זה אומר שזה לא בינארי שנקרא d3d9.dll, אלא נקרא d3d9on12.dll.

כאשר יישום יוצר מכשיר D3D9, הם יכולים לבחור להיות התקן D3D9On12, ולא מכשיר D3D9 מקורי. כאשר זה קורה, d3d9on12.dll נטען בזמן הריצה של D3D9 ומאתחל. כאשר היישום קורא לפקודות העיבוד, D3D9 יאמת את הפקודות הללו ולאחר מכן תמיר את הפקודות האלה ל- DDI D3D9 ותשלח אותן ל- D3D9On12, בדיוק כמו כל מנהל התקן D3D9.

D3D9On12 ייקח פקודות אלה וימיר אותן לקריאות API של D3D12, אשר מאומתות יותר על ידי זמן הריצה של D3D12, אופציונלי כולל שכבת הבאגים של D3D12, המומר לאחר מכן ל- DDI D3D12 ונשלח למנהל ההתקן D3D12.

מוזכר גם ש הפרויקט מבוסס על הקוד של תת מערכת דומה הכלול ב- Windows 10. יש לציין כי פרסום קוד D3D9On12 יספק הזדמנות כך שנציגי הקהילה להשתתף בתיקוני באגים והוספת אופטימיזציות, וזה יכול לשמש גם דוגמה ללימוד יישום מנהלי ההתקן של D3D9 DDI ומסגרת ליצירת שכבות כאלה לתרגומים של ממשקי API גרפיים שונים ב- D3D12.

למה קוד פתוח?
D3D9On12 היה חלק מ- Windows 10 כבר כמה שנים, ובמהלך הזמן הזה הוא גדל ביציבות ובשימושיות. הפוך אותו לקוד פתוח:

אפשר לקהילה לתרום תיקוני באגים נוספים או שיפורי ביצועים.
לשמש דוגמה נוספת לאופן השימוש ב- D3D12TranslationLayer
תן למי שמעוניין להסתכל איך נראה יישום D3D9 DDI

במקביל, שוחררה חבילת DXBC Signer המאפשרת לחתום על קבצי DXBC שרירותי שנוצר על ידי ערכות כלים של צד שלישי. D3D9On12 משתמש בחבילה זו כדי לחתום DXBCs שנוצרו על ידי המרת shaders למודל חדש.

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


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

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

*

*

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