Collabora, OpenCL ve OpenGL'yi DirectX'in üzerinde çalıştırmak için bir eklenti geliştiriyor

Collabora şirketi sunulan DirectX 1.2'yi (D3.3D12) destekleyen sürücülerin üzerinde OpenCL 3 ve OpenGL 12 API'lerinin çalışmasını düzenlemek için bir katman uygulayan Mesa için yeni bir Gallium sürücüsü. Kod yayınlanan MIT lisansı altında.

Önerilen sürücü, Mesa'yı yerel olarak OpenCL ve OpenGL'yi desteklemeyen cihazlarda kullanmanıza ve ayrıca OpenGL/OpenCL uygulamalarını D3D12 üzerinde çalışacak şekilde taşımak için bir başlangıç ​​noktası olarak kullanmanıza olanak tanır. GPU üreticileri için alt sistem, yalnızca D3D12 desteğine sahip sürücülerin mevcut olması durumunda OpenCL ve OpenGL desteği sağlamayı mümkün kılar.

OpenCL 1.2 ve OpenGL 3.3 uyumluluk testlerinin tam olarak geçmesi, uygulamalarla uyumluluğun kontrol edilmesi ve gelişmelerin Mesa'nın ana yapısına dahil edilmesi acil planlar arasında yer alıyor. Geliştirme, geliştirme yapan Microsoft mühendisleriyle ortaklaşa yürütülür açık aletler D3D11On12 oyunları D3D11'den D3D12'ye ve kütüphaneye aktarmak için D3D12Çeviri KatmanıD3D12'nin üstüne standart grafik temellerini uygulayan.

Uygulama, Mesa'da kullanılan NIR gölgelendiricilerin ara temsilini DirectX 12'de desteklenen ve tabanlı DXIL (DirectX Ara Dili) ikili formatına dönüştüren Gallium sürücüsünü, OpenCL derleyicisini, OpenCL çalışma zamanını ve NIR'den DXIL'e gölgelendirici derleyicisini içerir. LLVM 3.7 bit kodu (DirectX Shader Derleyicisi Microsoft'tan aslında LLVM 3.7'nin genişletilmiş bir çatalıdır). OpenCL derleyicisi, LLVM projesi ve araçlarındaki gelişmeler temel alınarak hazırlanmıştır. SPIRV-LLVM.

OpenCL uzantılarına sahip kaynaklar clang kullanılarak LLVM ara sözde koduna (LLVM IR) derlenir ve bu daha sonra SPIR-V formatında OpenCL çekirdeklerinin bir ara temsiline dönüştürülür. SPIR-V temsilindeki çekirdekler Mesa'ya aktarılır, NIR formatına çevrilir, optimize edilir ve DirectX 12 tabanlı çalışma zamanı kullanan GPU'larda yürütmeye uygun DXIL formatında hesaplama gölgelendiricileri oluşturmak için NIR'den DXIL'e aktarılır.
Mesa'da kullanılan OpenCL uygulaması Clover yerine, DirectX 12 API'sine daha doğrudan dönüşümlere izin veren yeni bir OpenCL çalışma zamanı önerildi.

Collabora, OpenCL ve OpenGL'yi DirectX'in üzerinde çalıştırmak için bir eklenti geliştiriyor

OpenCL ve OpenGL sürücüleri, Mesa'da sağlanan Gallium arayüzü kullanılarak hazırlanır; bu, OpenGL'ye özgü ayrıntılara girmeden sürücüler oluşturmanıza ve OpenGL çağrılarını özünde modern GPU'ların üzerinde çalıştığı grafik temellerine daha yakın hale getirmenize olanak tanır. Galyum sürücüsü, OpenGL komutlarını kabul eder ve NIR'den DXIL'e çeviriciyi kullanırken
D3D12 sürücüsünü kullanarak GPU'da yürütülen komut arabelleklerini oluşturur.

Kaynak: opennet.ru

Yorum ekle