Uzņēmums Collabora
Piedāvātais draiveris ļauj izmantot Mesa ierīcēs, kas sākotnēji neatbalsta OpenCL un OpenGL, kā arī kā sākumpunktu OpenGL/OpenCL lietojumprogrammu pārnešanai, lai tās darbotos uz D3D12. GPU ražotājiem apakšsistēma ļauj nodrošināt atbalstu OpenCL un OpenGL, ja ir pieejami tikai draiveri ar D3D12 atbalstu.
Starp tuvākajiem plāniem ir OpenCL 1.2 un OpenGL 3.3 saderības testu pilnīga nokārtošana, saderības ar lietojumprogrammām pārbaude un izstrādņu iekļaušana Mesa galvenajā sastāvā. Izstrāde tiek veikta kopā ar Microsoft inženieriem, kas izstrādā
Īstenošana ietver Gallium draiveri, OpenCL kompilatoru, OpenCL izpildlaiku un NIR-DXIL ēnotāju kompilatoru, kas pārvērš Mesa izmantoto NIR ēnotāju starpposma attēlojumu DXIL (DirectX Intermediate Language) binārajā formātā, ko atbalsta DirectX 12 un balstās uz LLVM 3.7 bitkods (
Avoti ar OpenCL paplašinājumiem tiek apkopoti, izmantojot clang LLVM starpposma pseidokodā (LLVM IR), kas pēc tam tiek pārveidots par OpenCL kodolu starpposma attēlojumu SPIR-V formātā. SPIR-V attēlojuma kodoli tiek nodoti Mesa, pārtulkoti NIR formātā, optimizēti un nodoti NIR-to-DXIL, lai ģenerētu ēnotājus DXIL formātā, kas ir piemēroti izpildei GPU, izmantojot DirectX 12 izpildlaiku.
Programmā Mesa izmantotās OpenCL ieviešanas Clover vietā tiek piedāvāts jauns OpenCL izpildlaiks, kas ļauj tiešāk konvertēt uz DirectX 12 API.
OpenCL un OpenGL draiveri tiek sagatavoti, izmantojot Mesa nodrošināto Gallium saskarni, kas ļauj izveidot draiverus, neiedziļinoties OpenGL specifiskās detaļās, un tulkot OpenGL izsaukumus pēc būtības tuvāk grafikas primitīviem, ar kuriem darbojas mūsdienu GPU. Gallium draiveris, pieņem OpenGL komandas un, izmantojot NIR-DXIL tulkotāju
ģenerē komandu buferus, kas tiek izpildīti GPU, izmantojot D3D12 draiveri.
Avots: opennet.ru