В 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)
>>> Источник
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Mettle 0.17.0 | 0 | 24.52 | 03-09-2026 |
| 2 | Выпуск DXVK 3.0, реализации Direct3D 8/9/10/11 поверх API Vulkan | 0 | 7 | 26-06-2026 |
| 3 | Выпуск DXVK 3.0 | 0 | 7 | 27-06-2026 |
| 4 | Rust For Linux 7.3 Begins Seeing Fixes To Prepare For Rust's GCC Backend | 0 | 8.65 | 18-08-2026 |
| 5 | Релиз набора компиляторов LLVM 23 | 0 | 13.61 | 27-08-2026 |
| 6 | Сравнение отзывчивости ввода в X11 и Wayland | 0 | 7 | 14-07-2026 |
| 7 | Переменная WINEDLLPATH=«» | 0 | 6 | 02-07-2026 |
| 8 | Offloading Rust To GPUs Proves Capable Of High Performance With Memory Safety | 0 | 6.69 | 17-08-2026 |
| 9 | Intel Enables Buffer Compression For Better Gaming Performance With DXVK | 0 | 13.72 | 18-08-2026 |
| 10 | Как я написал OpenGL 3.3 рендерер с поддержкой Normal Map для Unreal Tournament 2004, не зная C++ и без исходников игры | 0 | 9.81 | 14-08-2026 |