syarikat Collabora
Pemacu yang dicadangkan membolehkan anda menggunakan Mesa pada peranti yang tidak menyokong OpenCL dan OpenGL secara asli, dan juga sebagai titik permulaan untuk mengalihkan aplikasi OpenGL/OpenCL untuk dijalankan di atas D3D12. Untuk pengeluar GPU, subsistem memungkinkan untuk menyediakan sokongan untuk OpenCL dan OpenGL, jika hanya pemacu dengan sokongan D3D12 tersedia.
Antara rancangan segera ialah pencapaian lulus penuh ujian keserasian OpenCL 1.2 dan OpenGL 3.3, menyemak keserasian dengan aplikasi dan memasukkan perkembangan dalam komposisi utama Mesa. Pembangunan dijalankan bersama dengan jurutera Microsoft yang sedang membangun
Pelaksanaan termasuk pemacu Gallium, pengkompil OpenCL, masa jalan OpenCL dan pengkompil shader NIR-ke-DXIL, yang menukar perwakilan perantaraan pelorek NIR yang digunakan dalam Mesa ke dalam format binari DXIL (DirectX Intermediate Language), disokong dalam DirectX 12 dan berdasarkan kod bit LLVM 3.7 (
Sumber dengan sambungan OpenCL disusun menggunakan denting ke dalam pseudokod perantaraan LLVM (LLVM IR), yang kemudiannya ditukar menjadi perwakilan perantaraan kernel OpenCL dalam format SPIR-V. Teras dalam perwakilan SPIR-V dihantar ke Mesa, diterjemahkan kepada format NIR, dioptimumkan dan dihantar kepada NIR-ke-DXIL untuk menjana pelorek pengiraan dalam format DXIL, sesuai untuk pelaksanaan pada GPU menggunakan masa jalan berasaskan DirectX 12.
Daripada Clover, pelaksanaan OpenCL yang digunakan dalam Mesa, masa jalan OpenCL baharu dicadangkan, membenarkan lebih banyak penukaran langsung kepada DirectX 12 API.
Pemacu OpenCL dan OpenGL disediakan menggunakan antara muka Gallium yang disediakan dalam Mesa, yang membolehkan anda mencipta pemacu tanpa pergi ke butiran khusus OpenGL dan menterjemah panggilan OpenGL pada dasarnya lebih dekat dengan primitif grafik yang GPU moden beroperasi. Pemacu Gallium, menerima arahan OpenGL dan apabila menggunakan penterjemah NIR-to-DXIL
menjana penimbal arahan yang dilaksanakan pada GPU menggunakan pemacu D3D12.
Sumber: opennet.ru