Microsoft випустила вихідний код шару D3D9On12, який використовується для перекладу команд Direct3D 9 на Direct3D 12

Хороші новини надійшли від Microsoft і саме це недавно дав про це знати через допис у блозі відкриття вихідного коду шару D3D9On12 з реалізацією пристрою DDI (Device Driver Interface), який переводить команди Direct3D 9 (D3D9) у команди Direct3D 12 (D3D12).

Цей крок Microsoft тепер, як ніколи, спростить розробникам перехід від DirectX11 до DirectX12 для своїх ігор. Рівень перекладу DX12-це, по суті, бібліотека-помічник для перекладу графічних концепцій та команд з домену у стилі DX11 у домен у стилі DX12.

Минуло деякий час, коли ми востаннє згадували шар відображення D3D9On12. Як швидке оновлення, він позначає команди D3D9 на D3D12, що виконує роль інтерфейсу драйвера пристрою D3D9 (DDI). Наявність цього рівня відображення дозволяє старішим програмам D3D9 працювати на сучасних системах, які можуть не мати драйвера D3D9. З моменту останньої публікації в блозі ми додали підтримку розширень Alpha to Coverage, виправили деякі помилки та очистили базу коду для відкритого коду.

Це, безперечно, хороша новина тепер можуть принести користь різні проекти, які працюють із шаром, оскільки як такий він дозволяє застарілим програмам працювати у середовищах, які підтримують лише D3D12, тобто наприклад це може бути корисним для реалізації D3D9 на основі проектів vkd3d та VKD3D-протоноскільки вони пропонують реалізацію Direct3D 12 для Linux, яка працює шляхом перекладу викликів D3D12 до графічного API Vulkan.

D3D9On12 - це шар, який відображає графічні команди від D3D9 до D3D12. D3D9On12 - це не реалізація D3D9 API, а скоріше реалізація режиму користувача 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 дасть можливість щоб представники громади брати участь у виправленні помилок та додаванні оптимізацій, і це також може служити прикладом для вивчення реалізації драйверів DDI D3D9 та фреймворку для створення таких шарів для перекладу різних графічних API у D3D12.

Чому з відкритим кодом?
D3D9On12 вже кілька років є частиною Windows 10, і за цей час вона стала стабільною та зручною у використанні. Зробити це відкритим кодом:

Дозвольте спільноті внести додаткові виправлення помилок або покращити продуктивність.
служать ще одним прикладом використання D3D12TranslationLayer
дайте тим, хто цікавиться, подивитися, як виглядає реалізація DDI D3D9

Одночасно був випущений пакет DXBC Signer, який дає можливість підписувати файли DXBC довільне, створене сторонніми наборами інструментів. D3D9On12 використовує цей пакет для підписання DXBC, створених шляхом перетворення шейдерів на нову модель.

В кінці кінців якщо вам цікаво дізнатись більше про це, Ви можете перевірити деталі публікації, зробленої Microsoft у своєму блозі У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.