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

Почему открытый исходный код?
D3D9On12 входит в состав Windows 10 уже несколько лет, и за это время его стабильность и удобство использования выросли. Сделайте его открытым исходным кодом:

Разрешите сообществу вносить дополнительные исправления ошибок или улучшения производительности.
служить еще одним примером использования D3D12TranslationLayer
дать интересующимся взглянуть на то, как выглядит реализация DDI D3D9

В то же время был выпущен пакет DXBC Signer, который позволяет подписывать файлы DXBC. произвольно сгенерированный сторонними инструментами. D3D9On12 использует этот пакет для подписи DXBC, созданных преобразованием шейдеров в новую модель.

В конце концов если вам интересно узнать об этом больше, вы можете проверить подробную информацию о публикации Microsoft в своем блоге. По следующей ссылке.


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.