Collabora geliştiricileri, Mesa için yeni bir Gallium denetleyicisi sundu

Collabora denetleyicisi

Son günlerde Collabora geliştiricileri yayınlandı bir blog yazısı aracılığıyla Mesa için yeni Galyum denetleyici, bir ara katman uygulayan OpenCL 1.2 ve OpenGL 3.3 API düzenlemek için DirectX 12 (D3D12) desteğine sahip sürücüler ve kaynak kodlarının MIT lisansı altında piyasaya sürüldüğü hakkında.

Önerilen kontrolör, Mesa'yı cihazlarda kullanmanıza izin verir başlangıçta uyumlu olmayan OpenCL ve OpenGL ile ve ayrıca D3D12 üzerinde çalışmak üzere OpenGL / OpenCL uygulamalarını bağlamak için bir başlangıç ​​konumu olarak. GPU üreticileri için alt sistem, yalnızca D3D12'yi destekleyen sürücülerle OpenCL ve OpenGL için destek sağlamaya izin verir.

Geliştiriciler blog yayınlarında şunları paylaşır:

Geçtiğimiz birkaç aydır, Collabora'da heyecan verici iki yeni proje üzerinde çalışıyoruz ve nihayet onlar hakkındaki bilgileri dünyayla paylaşmanın zamanı geldi ...

Acil planlarıntestlerin tam onayının elde edildiği gözlemlenmiştir. OpenCL 1.2 ve OpenGL 3.3 desteği, uygulamalarla uyumluluğun doğrulanması ve en iyi uygulamaların Mesa'nın ana bileşimine dahil edilmesi.

Yeni kontrolör hakkında

Yeni denetleyicinin geliştirilmesi Microsoft mühendisleri ile birlikte gerçekleştirildi. D3D11 aktarım kitlerine ve D12D3 D11D3TranslationLayer kitaplığına D12D3On12 araçlarının yanı sıra D3D12'nin üstünde standart grafiksel ilkel uygulamalar geliştirmek.

Hayata geçirme Gallium sürücüsü, OpenCL derleyicisi içerir, OpenCL çalışma zamanı ve Mesa'da kullanılan NIR gölgelendiricilerin ara temsilini DirectX 12 ile uyumlu ve LLVM 3.7 bit koduna (Microsoft'un DirectX Shader Compiler, esasen LLVM 3.7'nin genişletilmiş bir çatalı). OpenCL derleyicisi, LLVM projesinin ve SPIRV-LLVM araç setinin deneyimine dayalı olarak hazırlanmıştır.

Bu çalışma, önceki birçok çalışmaya dayanıyor. Her şeyden önce, bunu OpenGL katmanının temeli olarak Gallium arayüzü ve OpenCL derleyicisinin temeli olarak NIR ile Mesa 3D kullanarak inşa ediyoruz. Ayrıca LLVM ve Khronos SPIRV-LLVM tercümanını derleyici olarak kullanıyoruz.

Ek olarak, Microsoft'un D3D12 çeviri katmanını oluşturma deneyiminden ve Zink'i geliştirme konusundaki kendi deneyimimizden yararlanıyoruz.

OpenCL kaynak kodu, clang ile ara LLVM sözde koduna (LLVM IR) derlenir ve bu daha sonra SPIR-V biçiminde OpenCL çekirdeğinin ara gösterimine dönüştürülür.

SPIR-V temsilindeki çekirdekler Mesa'ya aktarılır, NIR formatına çevrildi, optimize edildi ve uygun DXIL hesaplamalı gölgelendiriciler oluşturmak için NIR'den DXIL'e aktarıldı DirectX 12 tabanlı çalışma zamanını kullanarak GPU yürütmesi için. OpenCL Mesa Uygulamasında Clover kullanmak yerine, DirectX 12 API'ye daha fazla doğrudan dönüşüm sağlayan yeni bir OpenCL çalışma zamanı önerildi.

OpenCL ve OpenGL sürücüleri Gallium arayüzü kullanılarak hazırlanır Sürücüler oluştururken OpenGL özelliklerini atlamanıza ve OpenGL çağrılarını modern GPU'ların üzerinde çalıştığı grafiksel ilkellere daha yakın varlıklara çevirmenize olanak tanıyan Mesa'da sağlanmıştır.

Gallium sürücüsü OpenGL komutlarını kabul eder ve NIR'den DXIL'e çeviricinin katılımıyla, D3D12 sürücüsünü kullanarak GPU üzerinde çalışan komut arabellekleri oluşturur.

Son olarak, geliştiriciler bunun erken bir çalışma olduğunu söylüyor ve denetleyicinin zaman içinde gelişmesini beklediklerini:

Bu sadece duyuru ve daha yapılacak çok iş var. Şu anda bazı durumlarda işe yarayan bir şeyimiz var, ancak yüzeyi çizmeye daha yeni başlıyoruz.

Her şeyden önce, yöneldiğimiz özellikler seviyesine ulaşmamız gerekiyor. Şu anda hedeflerimiz OpenCL 1.2 ve OpenGL 3.3 için uygunluk testini geçmek. Önümüzde uzun bir yol var ama biraz sıkı çalışma ve terle oraya varacağımıza eminim.

Bununla ilgili daha fazla bilgi edinmek istiyorsanız, orijinal notu kontrol edebilirsiniz aşağıdaki bağlantı veya kaynak kodunu incelemek isteyenler için bunu yapabilirler bu bağlantıdan.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.