Collabora-ն մշակում է հավելում OpenCL-ը և OpenGL-ը DirectX-ի վերևում գործարկելու համար

Collabora ընկերություն ներկայացրել նոր Gallium դրայվեր Mesa-ի համար, որն իրականացնում է շերտ՝ OpenCL 1.2 և OpenGL 3.3 API-ների աշխատանքը կազմակերպելու համար DirectX 12 (D3D12) աջակցող դրայվերների վերևում: Կոդ հրատարակված MIT լիցենզիայի ներքո:

Առաջարկվող դրայվերը թույլ է տալիս օգտագործել Mesa-ն սարքերում, որոնք բնիկորեն չեն աջակցում OpenCL և OpenGL, ինչպես նաև որպես մեկնարկային կետ՝ OpenGL/OpenCL հավելվածները D3D12-ի վերևում գործարկելու համար: GPU արտադրողների համար ենթահամակարգը հնարավորություն է տալիս աջակցություն տրամադրել OpenCL-ին և OpenGL-ին, եթե հասանելի են միայն D3D12 աջակցությամբ դրայվերները:

Անմիջական ծրագրերից են OpenCL 1.2-ի և OpenGL 3.3-ի համատեղելիության թեստերի ամբողջական հանձնումը, հավելվածների հետ համատեղելիության ստուգումը և Mesa-ի հիմնական կազմում զարգացումների ընդգրկումը: Մշակումն իրականացվում է Microsoft-ի մշակող ինժեներների հետ համատեղ բաց գործիքներ D3D11On12 խաղերը D3D11-ից D3D12 և գրադարան տեղափոխելու համար D3D12Թարգմանական շերտ, որն իրականացնում է ստանդարտ գրաֆիկական պրիմիտիվներ D3D12-ի վերևում:

Իրականացումը ներառում է Gallium դրայվերը, OpenCL կոմպիլյատորը, OpenCL գործարկման ժամանակը և NIR-ից DXIL ստվերային կոմպիլյատորը, որը փոխակերպում է Mesa-ում օգտագործվող NIR շեյդերների միջանկյալ ներկայացումը DXIL (DirectX միջանկյալ լեզու) երկուական ձևաչափի, որն ապահովվում է DirectX 12-ում և հիմնված LLVM 3.7 բիթկոդ (DirectX Shader Կազմող Microsoft-ից, ըստ էության, LLVM 3.7-ի ընդլայնված պատառաքաղ է): OpenCL կոմպիլյատորը պատրաստված է LLVM նախագծի և գործիքների մշակումների հիման վրա SPIRV-LLVM.

OpenCL ընդլայնումներով աղբյուրները հավաքվում են կլանգի միջոցով LLVM միջանկյալ կեղծ կոդի մեջ (LLVM IR), որն այնուհետև վերածվում է OpenCL միջուկների միջանկյալ ներկայացման SPIR-V ձևաչափով: SPIR-V ներկայացման միջուկները փոխանցվում են Mesa-ին, թարգմանվում են NIR ձևաչափով, օպտիմիզացվում և փոխանցվում են NIR-ի-DXIL՝ DXIL ձևաչափով հաշվողական ստվերներ ստեղծելու համար, որոնք հարմար են DirectX 12-ի վրա հիմնված գործարկման ժամանակի օգտագործմամբ GPU-ներում կատարման համար:
Clover-ի՝ Mesa-ում օգտագործվող OpenCL-ի ներդրման փոխարեն, առաջարկվում է նոր OpenCL գործարկման ժամանակ, որը թույլ է տալիս ավելի շատ ուղղակի փոխարկումներ DirectX 12 API-ին:

Collabora-ն մշակում է հավելում OpenCL-ը և OpenGL-ը DirectX-ի վերևում գործարկելու համար

OpenCL-ի և OpenGL-ի դրայվերները պատրաստվում են Mesa-ում տրված Gallium ինտերֆեյսի միջոցով, որը թույլ է տալիս ստեղծել դրայվերներ՝ առանց OpenGL-ին հատուկ մանրամասների մեջ մտնելու և OpenGL-ի զանգերը, ըստ էության, ավելի մոտեցնելով գրաֆիկական պարզունակներին, որոնց վրա գործում են ժամանակակից GPU-ները: Gallium վարորդը, ընդունում է OpenGL հրամանները և NIR-ից DXIL թարգմանիչն օգտագործելիս
առաջացնում է հրամանների բուֆերներ, որոնք կատարվում են GPU-ի վրա՝ օգտագործելով D3D12 դրայվերը:

Source: opennet.ru

Добавить комментарий