Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

DirectX backend в LLVM получил статус официально поддерживаемой архитектурной цели

Дата публикации: 09-09-2026 06:51:11













В LLVM завершён перевод DirectX backend из экспериментального в официальный статус. Соответствующий pull request #214066 был влит в основную ветку llvm-project 31 августа. DirectX перенесён из LLVM_ALL_EXPERIMENTAL_TARGETS в обычный LLVM_ALL_TARGETS, поэтому теперь backend будет собираться по умолчанию вместе с другими штатными целями LLVM.
Ранее для его включения требовалось явно добавлять DirectX через CMake-параметр LLVM_EXPERIMENTAL_TARGETS_TO_BUILD. В принятом изменении DirectX добавлен в стандартный список targets и удалён из экспериментального.
Речь идёт не о реализации Direct3D или графическом драйвере. DirectX backend преобразует LLVM IR в DXIL — DirectX Intermediate Language, используемый DirectX 12 для представления скомпилированных шейдеров. Согласно документации LLVM, DXIL основан на bitcode старого LLVM 3.7, дополненного специфичными для DirectX операциями, ограничениями и метаданными. Результат помещается в контейнер DXContainer, содержащий DXIL и дополнительную информацию о шейдере.
( читать дальше... )



 directx, llvm



Основное содержимое страницы с новостью.

В LLVM завершён перевод DirectX backend из экспериментального в официальный статус. Соответствующий pull request #214066 был влит в основную ветку llvm-project 31 августа. DirectX перенесён из LLVM_ALL_EXPERIMENTAL_TARGETS в обычный LLVM_ALL_TARGETS, поэтому теперь backend будет собираться по умолчанию вместе с другими штатными целями LLVM.

Ранее для его включения требовалось явно добавлять DirectX через CMake-параметр LLVM_EXPERIMENTAL_TARGETS_TO_BUILD. В принятом изменении DirectX добавлен в стандартный список targets и удалён из экспериментального.

Речь идёт не о реализации Direct3D или графическом драйвере. DirectX backend преобразует LLVM IR в DXIL — DirectX Intermediate Language, используемый DirectX 12 для представления скомпилированных шейдеров. Согласно документации LLVM, DXIL основан на bitcode старого LLVM 3.7, дополненного специфичными для DirectX операциями, ограничениями и метаданными. Результат помещается в контейнер DXContainer, содержащий DXIL и дополнительную информацию о шейдере.

Одновременно с повышением статуса backend поддержка HLSL и clang-dxc включается при сборке Clang по умолчанию. Отдельный переключатель CLANG_ENABLE_HLSL удалён. clang-dxc фактически запускает Clang в режиме --driver-mode=dxc, предоставляя интерфейс командной строки, ориентированный на совместимость с Microsoft DirectX Shader Compiler. (изменение в LLVM)

Долгосрочная цель проекта ещё масштабнее. В документации HLSL в Clang разработчики заявляют о намерении сделать Clang заменой DXC во всех поддерживаемых сценариях, сохранив совместимость с существующим HLSL-кодом. При этом HLSL toolchain не ограничивается DirectX: предусмотрена генерация как DXIL, так и SPIR-V, используемого в Vulkan.

Работа над DirectX backend в основном дереве LLVM ведётся примерно четыре года. 4 августа инженер Microsoft Farzon Lotfi опубликовал RFC с предложением перевести его в официальный статус. Разработчики посчитали backend достаточно зрелым с точки зрения архитектуры, стабильности, тестирования и наличия сопровождающих. В качестве наиболее готового сценария сейчас называется компиляция compute shaders.

Официальный статус имеет практическое значение и для самого LLVM. Experimental backend не обязан собираться по умолчанию, а его поломки в первую очередь исправляют собственные сопровождающие. Штатный target становится частью обычной сборочной и тестовой инфраструктуры LLVM и должен оставаться работоспособным при изменениях общих компонентов проекта.

Особенность DirectX backend — необходимость преобразовывать современный LLVM IR в формат, совместимый с LLVM 3.7. Этот вопрос отдельно обсуждался при рассмотрении RFC. Разработчики решили изолировать такую совместимость внутри backend: специальные проходы адаптируют IR к требованиям DXIL, а ограничения старого формата не должны мешать развитию современного LLVM. (обсуждение RFC)

Например, стадия DXILPrepare преобразует конструкции, которые нельзя непосредственно представить в DXIL, а DXILOpLowering заменяет LLVM intrinsics операциями DirectX. После этого DXILTranslateMetadata формирует требуемые метаданные. Архитектура этой цепочки описана в документации LLVM.

Получение официального статуса пока не означает полной готовности замены DXC. Наиболее зрелым направлением остаются compute shaders, тогда как поддержка полного набора графических стадий, ray tracing и новых Shader Model продолжает развиваться. Сам backend первоначально ориентирован на DirectX 12; поддержку DirectX 11 разработчики планируют расширять позднее. (DirectX Usage)

>>> Источник

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Mettle 0.17.0024.5203-09-2026
2Выпуск DXVK 3.0, реализации Direct3D 8/9/10/11 поверх API Vulkan0726-06-2026
3Выпуск DXVK 3.00727-06-2026
4Rust For Linux 7.3 Begins Seeing Fixes To Prepare For Rust's GCC Backend08.6518-08-2026
5Релиз набора компиляторов LLVM 23013.6127-08-2026
6Сравнение отзывчивости ввода в X11 и Wayland0714-07-2026
7Переменная WINEDLLPATH=«»0602-07-2026
8Offloading Rust To GPUs Proves Capable Of High Performance With Memory Safety06.6917-08-2026
9Intel Enables Buffer Compression For Better Gaming Performance With DXVK013.7218-08-2026
10Как я написал OpenGL 3.3 рендерер с поддержкой Normal Map для Unreal Tournament 2004, не зная C++ и без исходников игры09.8114-08-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 17.64. Источник: linux.org.ru.