Collabora развива додаток за водење OpenCL и OpenGL на врвот на DirectX

Компанијата Колабора презентирани нов двигател Галиум за Mesa, кој имплементира слој за организирање на работата на OpenCL 1.2 и OpenGL 3.3 API на врвот на драјверите што поддржуваат DirectX 12 (D3D12). Код објавено под лиценцата MIT.

Предложениот драјвер ви овозможува да користите Mesa на уреди кои природно не поддржуваат OpenCL и OpenGL, а исто така и како почетна точка за пренесување на апликациите OpenGL/OpenCL за да работат на врвот на D3D12. За производителите на графички процесори, потсистемот овозможува да се обезбеди поддршка за OpenCL и OpenGL, доколку се достапни само драјвери со поддршка за D3D12.

Меѓу непосредните планови се постигнување на целосно полагање на тестовите за компатибилност на OpenCL 1.2 и OpenGL 3.3, проверка на компатибилноста со апликациите и вклучување на развојот во главниот состав на Mesa. Развојот се врши заедно со инженерите на Microsoft кои се развиваат отворен алатки D3D11On12 за пренос на игри од D3D11 во D3D12 и библиотека D3D12 TranslationLayer, кој имплементира стандардни графички примитиви на врвот на D3D12.

Имплементацијата вклучува двигател Галиум, компајлер OpenCL, компајлер за време на траење OpenCL и компајлер за шејдер NIR-to-DXIL, кој ја конвертира средното претставување на NIR шејдерите што се користат во Mesa во бинарен формат DXIL (DirectX Intermediate Language), поддржан во DirectX 12 и базиран на LLVM 3.7 биткод (Компајлер на DirectX Shader од Microsoft во суштина е продолжена вилушка на LLVM 3.7). Компајлерот OpenCL е подготвен врз основа на развојот на проектот LLVM и алатките SPIRV-LLVM.

Изворите со екстензии на OpenCL се компајлираат со помош на clang во LLVM среден псевдокод (LLVM IR), кој потоа се претвора во средно претставување на OpenCL кернелите во формат SPIR-V. Јадрата во претставата SPIR-V се пренесуваат во Mesa, се преведуваат во формат NIR, се оптимизираат и се предаваат на NIR-на-DXIL за да се генерираат пресметковни шејдери во формат DXIL, погодни за извршување на графички процесори со користење на траење базирано на DirectX 12.
Наместо Clover, имплементацијата OpenCL што се користи во Mesa, се предлага ново траење на OpenCL, што овозможува повеќе директни конверзии во DirectX 12 API.

Collabora развива додаток за водење OpenCL и OpenGL на врвот на DirectX

Драјверите за OpenCL и OpenGL се подготвуваат со помош на интерфејсот Галиум обезбеден во Mesa, кој ви овозможува да креирате драјвери без да навлегувате во детали специфични за OpenGL и да ги преведувате повиците на OpenGL во суштина поблиску до графичките примитиви на кои работат модерните графички процесори. Возачот на Галиум, прифаќа команди OpenGL и кога го користи преведувачот NIR-на-DXIL
генерира командни бафери кои се извршуваат на графичкиот процесор со помош на драјверот D3D12.

Извор: opennet.ru

Додадете коментар