Perusahaan kolaborasi
Driver yang diusulkan memungkinkan Anda untuk menggunakan Mesa pada perangkat yang tidak mendukung OpenCL dan OpenGL, dan juga sebagai titik awal untuk mem-porting aplikasi OpenGL/OpenCL agar berjalan di atas D3D12. Untuk produsen GPU, subsistem memungkinkan untuk memberikan dukungan untuk OpenCL dan OpenGL, jika hanya tersedia driver dengan dukungan D3D12.
Di antara rencana jangka pendeknya adalah pencapaian kelulusan penuh uji kompatibilitas OpenCL 1.2 dan OpenGL 3.3, pemeriksaan kompatibilitas dengan aplikasi dan penyertaan pengembangan dalam komposisi utama Mesa. Pengembangan dilakukan bersama dengan para insinyur pengembangan Microsoft
Implementasinya mencakup driver Gallium, kompiler OpenCL, runtime OpenCL, dan kompiler shader NIR-ke-DXIL, yang mengubah representasi perantara shader NIR yang digunakan di Mesa ke dalam format biner DXIL (DirectX Intermediate Language), didukung di DirectX 12 dan berdasarkan Kode bit LLVM 3.7 (
Sumber dengan ekstensi OpenCL dikompilasi menggunakan dentang ke dalam pseudocode perantara LLVM (LLVM IR), yang kemudian diubah menjadi representasi perantara kernel OpenCL dalam format SPIR-V. Inti dalam representasi SPIR-V diteruskan ke Mesa, diterjemahkan ke format NIR, dioptimalkan dan diteruskan ke NIR-ke-DXIL untuk menghasilkan shader komputasi dalam format DXIL, cocok untuk dieksekusi pada GPU menggunakan runtime berbasis DirectX 12.
Alih-alih Clover, implementasi OpenCL yang digunakan di Mesa, runtime OpenCL baru diusulkan, memungkinkan lebih banyak konversi langsung ke DirectX 12 API.
Driver OpenCL dan OpenGL disiapkan menggunakan antarmuka Gallium yang disediakan di Mesa, yang memungkinkan Anda membuat driver tanpa masuk ke detail spesifik OpenGL dan menerjemahkan panggilan OpenGL pada dasarnya lebih dekat ke grafis primitif yang dioperasikan oleh GPU modern. Driver Gallium, menerima perintah OpenGL dan saat menggunakan penerjemah NIR-ke-DXIL
menghasilkan buffer perintah yang dijalankan pada GPU menggunakan driver D3D12.
Sumber: opennet.ru