Collabora membangunkan alat tambah untuk menjalankan OpenCL dan OpenGL di atas DirectX

syarikat Collabora dibentangkan pemacu Gallium baharu untuk Mesa, yang melaksanakan lapisan untuk mengatur kerja OpenCL 1.2 dan OpenGL 3.3 API di atas pemacu yang menyokong DirectX 12 (D3D12). Kod diterbitkan di bawah lesen MIT.

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 terbuka alatan D3D11On12 untuk memindahkan permainan dari D3D11 ke D3D12 dan perpustakaan D3D12Lapisan Terjemahan, yang melaksanakan primitif grafik standard di atas D3D12.

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 (DirectX Shader Compiler daripada Microsoft pada asasnya ialah garpu lanjutan LLVM 3.7). Pengkompil OpenCL disediakan berdasarkan perkembangan projek dan alatan LLVM SPIRV-LLVM.

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.

Collabora membangunkan alat tambah untuk menjalankan OpenCL dan OpenGL di atas DirectX

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

Tambah komen