Firefox'un gecelik sürümleri artık WebGPU desteğini içeriyor

В gece Firefox derlemeleri göründü spesifikasyon desteği WebGPU'su3D grafik işleme ve GPU tarafı hesaplama için kavramsal olarak API'ye benzer bir programlama arayüzü sağlayan Vulkan, Metal и Doğrudan3D 12. Spesifikasyon Mozilla, Google, Apple, Microsoft ve topluluk üyeleri tarafından geliştirilmektedir. çalışma GrubuW3C organizasyonu tarafından oluşturulmuştur.

WebGPU'nun temel hedefi, Windows üzerinde Direct3D 3, Metal gibi modern sistem grafik API'leri tarafından sağlanan 12D grafik teknolojilerinden ve yeteneklerinden yararlanacak şekilde Web platformu için güvenli, kullanıcı dostu, taşınabilir ve yüksek performanslı bir programlama arayüzü sağlamaktır. macOS'ta ve Vulkan Linux'ta. Kavramsal olarak WebGPU, Vulkan'ın OpenGL'den farklı olduğu kadar WebGL'den de farklıdır ve aynı zamanda belirli bir grafik API'sine dayalı değildir, ancak genellikle Vulkan'da bulunan aynı düşük seviyeli temel öğeleri kullanan evrensel bir katmandır. Metal ve Direct3D.

WebGPU, JavaScript uygulamalarına, komutların GPU'ya organizasyonu, işlenmesi ve iletilmesi, ilgili kaynakların, belleğin, arabelleklerin, doku nesnelerinin ve derlenmiş grafik gölgelendiricilerin yönetilmesi üzerinde daha düşük düzeyde kontrol sağlar. Bu yaklaşım, genel giderleri azaltarak ve GPU ile çalışma verimliliğini artırarak grafik uygulamaları için daha yüksek performans elde etmenizi sağlar.

WebGPU, Vulkan, Metal veya Direct3D'ye doğrudan erişen ancak belirli platformlara bağlı olmayan bağımsız programlardan daha kötü çalışmayan, Web için tam teşekküllü karmaşık 3D projeler oluşturmayı mümkün kılar. WebGPU ayrıca, WebAssembly teknolojisinin kullanımı yoluyla yerel grafik programlarını web özellikli bir forma taşırken ek yetenekler sağlar. WebGPU, 3D grafiklere ek olarak hesaplamaların GPU'ya aktarılması ve gölgelendirici gelişiminin desteklenmesi ile ilgili yetenekleri de kapsar. Gölgelendiriciler kutu WebGPU Gölgeleme Dili'nde oluşturulacak veya ara SPIR-V formatında belirtilecek ve daha sonra mevcut sürücüler tarafından desteklenen gölgelendirici dillerine çevrilecektir.

WebGPU, kaynakların ayrı yönetimini, hazırlık çalışmalarını ve komutların GPU'ya iletilmesini kullanır (WebGL'de her şeyden aynı anda bir nesne sorumluydu). Üç ayrı bağlam sağlanmıştır:
Dokular ve arabellekler gibi kaynaklar oluşturmak için GPUDevice; Oluşturma ve hesaplama aşamaları da dahil olmak üzere bireysel komutları kodlamak için GPUCommandEncoder; GPUCommandBuffer, GPU'da yürütülmek üzere sıraya alınacak. Sonuç, bir veya daha fazla tuval öğesiyle ilişkili bir alanda oluşturulabilir veya çıktı olmadan işlenebilir (örneğin, bilgi işlem görevlerini çalıştırırken). Aşamaları ayırmak, kaynak oluşturma ve hazırlama işlemlerini farklı iş parçacıklarında çalışabilen farklı işleyicilere ayırmayı kolaylaştırır.

WebGPU ile WebGL arasındaki ikinci fark durumların ele alınmasına yönelik farklı bir yaklaşımdır. WebGPU, geliştirici tarafından önceden tanımlanmış çeşitli durumları birleştirmenize olanak tanıyan GPURenderPipeline ve GPUComputePipeline olmak üzere iki nesne sunar; bu, tarayıcının, gölgelendiricileri yeniden derlemek gibi ek işlerle kaynakları israf etmemesine olanak tanır. Desteklenen durumlar şunları içerir: gölgelendiriciler, köşe arabelleği ve nitelik düzenleri, yapışkan grup düzenleri, karıştırma, derinlik ve desenler ve işleme sonrası çıktı biçimleri.

WebGPU'nun üçüncü özelliğine büyük ölçüde bağlama modeli adı verilir.
Vulkan'da bulunan kaynak gruplama araçlarını hatırlatıyor.
Kaynakları bir arada gruplamak için WebGPU, komut yazarken gölgelendiricilerde kullanılmak üzere diğer benzer nesnelerle ilişkilendirilebilecek bir GPUBindGroup nesnesi sağlar. Bu tür grupların oluşturulması, sürücünün gerekli hazırlık eylemlerini önceden gerçekleştirmesine olanak tanır ve tarayıcının, çizim çağrıları arasındaki kaynak bağlamalarını çok daha hızlı değiştirmesine olanak tanır. Kaynak bağlamalarının düzeni GPUBindGroupLayout nesnesi kullanılarak önceden tanımlanabilir.

Firefox'un gecelik sürümleri artık WebGPU desteğini içeriyor

Firefox'ta, about:config'te WebGPU'yu etkinleştirmek için “dom.webgpu.enabled” ayarı vardır. CanvasContext oluşturma aynı zamanda birleştirmenin etkinleştirilmesini gerektirir Web Oluşturucu (“gfx.webrender.all” in about:config), Rust'ta yazılmıştır ve sayfa içeriği oluşturma işlemlerini GPU'ya dış kaynak olarak sağlamaktadır. WebGPU uygulaması proje koduna dayanmaktadır
wgpuRust'ta yazılmış ve Linux, Android, Windows ve macOS'ta DX12, Vulkan ve Metal API'lerinin üzerinde çalışabilen (DX11 ve OpenGL ES 3.0 desteği de geliştirme aşamasındadır). Buna paralel olarak Google, şu adreste mevcut olan başka bir uygulama geliştiriyor: Kanarya dalı Chromium, "chrome://flags/#enable-unsafe-webgpu" işareti kullanılarak etkinleştirilir, ancak şu ana kadar yalnızca macOS ve Windows'ta çalışmaktadır.

Kaynak: opennet.ru

Yorum ekle