<img
itemprop="thumbnail"
class="medium-image"
src="
https://www.linux.org.ru/images/24046/1000px.jpg"
alt="DirectX backend в LLVM получил статус официально поддерживаемой архитектурной цели"
srcset="images/24046/500px.jpg 500w, images/24046/1000px.jpg 1000w,
https://www.linux.org.ru/images/24046/original.png 1024w"
sizes="100vw" style="position: absolute; max-height: 90vh"
width=1000 height=1000>
В LLVM завершён перевод DirectX backend из экспериментального в официальный статус. Соответствующий [ pull request #214066 был влит в основную ветку llvm-project 31 августа ](
https://github.com/llvm/llvm-project/pull/214066 ) . DirectX перенесён из LLVM_ALL_EXPERIMENTAL_TARGETS в обычный LLVM_ALL_TARGETS, поэтому теперь backend будет собираться по умолчанию вместе с другими штатными целями LLVM.
Ранее для его включения требовалось явно добавлять DirectX через CMake-параметр LLVM_EXPERIMENTAL_TARGETS_TO_BUILD. В принятом изменении [ DirectX добавлен в стандартный список targets и удалён из экспериментального ](
https://github.com/llvm/llvm-project/commit/1b0bd3a28d1f ) .
Речь идёт не о реализации Direct3D или графическом драйвере. DirectX backend преобразует LLVM IR в DXIL — DirectX Intermediate Language, используемый DirectX 12 для представления скомпилированных шейдеров. Согласно [ документации LLVM ](
https://www.llvm.org/docs/DirectX/DXILArchitecture.html ) , DXIL основан на bitcode старого LLVM 3.7, дополненного специфичными для DirectX операциями, ограничениями и метаданными. Результат помещается в контейнер DXContainer, содержащий DXIL и дополнительную информацию о шейдере.
( [ читать дальше... ](
https://www.linux.org.ru/news/opensource/18376833#cut ) )