Perusahaan kolaborasi Supir Gallium anyar pikeun Mesa, ngalaksanakeun lapisan pikeun ngatur operasi OpenCL 1.2 sareng OpenGL 3.3 API di luhur supir kalayan dukungan DirectX 12 (D3D12). Kodeu handapeun lisénsi MIT.
Supir anu diusulkeun ngamungkinkeun panggunaan Mesa dina alat anu henteu asli ngadukung OpenCL sareng OpenGL, ogé titik awal pikeun porting aplikasi OpenGL/OpenCL pikeun ngajalankeun di luhur D3D12. Pikeun pabrik GPU, subsistem ngaktifkeun dukungan pikeun OpenCL sareng OpenGL nalika supir ngan ukur ngadukung D3D12.
Rencana langsung kalebet ngahontal tés kasaluyuan OpenCL 1.2 sareng OpenGL 3.3 lengkep, uji kasaluyuan aplikasi, sareng ngalebetkeun kamajuan ieu kana platform inti Mesa. Pangwangunan dilaksanakeun ku kolaborasi sareng insinyur Microsoft ngembangkeun parabot pikeun ngarobah kaulinan tina D3D11 mun D3D12 jeung perpustakaan , nu nerapkeun primitif grafis has dina luhureun D3D12.
Implementasina kalebet supir Gallium, kompiler OpenCL, runtime OpenCL, sareng kompiler shader NIR-to-DXIL anu ngarobih perwakilan perantara shaders NIR anu dianggo dina Mesa kana format binér DXIL (DirectX Intermediate Language) anu dirojong dina DirectX 12 sareng dumasar kana LLVM 3.7 bitcode ( ti Microsoft dasarna mangrupa garpu nambahan LLVM 3.7). Kompiler OpenCL dumasar kana karya proyék sareng alat LLVM .
Kode sumber extension OpenCL disusun ngagunakeun clang kana LLVM pseudocode panengah (LLVM IR), nu lajeng dirobah jadi hiji ngagambarkeun panengah kernels OpenCL dina format SPIR-V. Kernel SPIR-V dialihkeun ka Mesa, ditarjamahkeun kana format NIR, dioptimalkeun, sareng dikirimkeun ka NIR-to-DXIL pikeun ngahasilkeun shaders komputasi dina format DXIL, cocog pikeun palaksanaan GPU nganggo runtime dumasar DirectX 12.
palaksanaan Mesa ngeunaan OpenCL, Clover, geus diganti ku runtime OpenCL anyar nu ngidinan mappings leuwih langsung ka DirectX 12 API.
Supir OpenCL sareng OpenGL ditulis nganggo antarmuka Gallium anu disayogikeun ku Mesa, anu ngamungkinkeun pamekaran supir ngalangkungan detil khusus OpenGL sareng narjamahkeun sauran OpenGL kana éntitas anu langkung caket kana primitif grafis anu dianggo ku GPU modern. Supir Gallium nampi paréntah OpenGL sanajan nganggo penerjemah NIR-to-DXIL.
Ngahasilkeun panyangga paréntah anu dieksekusi dina GPU nganggo supir D3D12.
sumber: opennet.ru
