Collabora mengembangkan add-on untuk menjalankan OpenCL dan OpenGL di atas DirectX

Perusahaan kolaborasi disajikan driver Gallium baru untuk Mesa, yang mengimplementasikan lapisan untuk mengatur kerja API OpenCL 1.2 dan OpenGL 3.3 di atas driver yang mendukung DirectX 12 (D3D12). Kode diterbitkan di bawah lisensi MIT.

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 terbuka peralatan D3D11Pada12 untuk mentransfer game dari D3D11 ke D3D12 dan perpustakaan D3D12Lapisan Terjemahan, yang mengimplementasikan primitif grafis standar di atas D3D12.

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 (DirectX Shader Compiler dari Microsoft pada dasarnya adalah perpanjangan dari LLVM 3.7). Kompiler OpenCL disiapkan berdasarkan pengembangan proyek dan alat LLVM SPIRV-LLVM.

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.

Collabora mengembangkan add-on untuk menjalankan OpenCL dan OpenGL di atas DirectX

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

Tambah komentar