Yayınlanma tarihi: 9 Kasım 2023, Son güncelleme tarihi: 16 Eylül 2025
WebGPU, genellikle son teknoloji donanım özelliklerini kullanıma sunarak ve GPU'da oluşturma ve hesaplama işlemlerini etkinleştirerek GPU'lara birleşik ve hızlı erişim sağlayan bir web grafik API'si olarak algılanır. Bu API, Direct3D 12, Metal ve Vulkan'a benzer.
Ancak WebGPU, yalnızca bir JavaScript API'sinin sınırlarını aşar. Gelişen ekosistemi sayesinde web'in çok ötesine uzanan etkileri olan, WebAssembly'ye benzer temel bir yapı taşıdır. Chrome Ekibi, WebGPU'nun yalnızca bir web teknolojisinden daha fazlası olduğunu; temel bir teknoloji etrafında gelişen bir ekosistem olduğunu kabul ediyor.
Mevcut ekosistemi keşfetme
Bu yolculuk, Apple, Google, Intel, Mozilla ve Microsoft gibi çok sayıda kuruluşun ortak çalışmasıyla ortaya çıkan JavaScript spesifikasyonuyla başlar. Tüm büyük web tarayıcıları WebGPU'yu uygulamaya koydu veya uygulamaya koyma sürecinde.
Aynı zamanda Mozilla ve Google, WebGPU'nun platforma özel uygulamalardaki potansiyelini fark etti ve WebGPU uygulamalarını tarayıcılardan ayırarak bağımsız kullanımını sağladı.
Chrome'da bu, WebGPU çağrılarını GPU sürücü komutlarına çeviren bir C/C++ kitaplığı olan Dawn olarak gerçekleşti. Dawn, C ve C++ uygulamalarının WebGPU'yu yerel olarak kullanmasını sağlar. Tarayıcı tedarikçisi uzmanlığını kullanarak taşınabilir ve ergonomik bir GPU soyutlaması sunar.
WebGPU: the cross-platform graphics API of tomorrow (WebGPU: Yarının platformlar arası grafik API'si) başlıklı blog yayınında gösterildiği gibi, platforma özgü bir WebGPU uygulamasını web'e taşıma işlemi kolaydır. C++ WebAssembly araç zinciri olan Emscripten, WebGPU'yu zaten destekliyor. Web'e aktarmak için yalnızca minimum düzeyde değişiklik yapılması gerekiyor.
Ayrıca, Dawn tabanlı bir WebGPU modülü içerdiğinden JavaScript WebGPU kodunuzu Node.js JavaScript çalışma zamanı ile tarayıcı dışında da çalıştırabilirsiniz. Kodunuzu sunucu tarafında veya diğer platforma özgü bağlamlarda değişiklik yapmadan çalıştırmanıza olanak tanır.
Rust için de wgpu (Firefox'un WebGPU uygulaması) ile benzer bir ekosistem mevcuttur. Wgpu, doğrudan Rust uygulamalarına entegre edilebilir ve bu uygulamalar daha sonra web-sys kullanılarak web'e aktarılabilir. Ayrıca Deno JavaScript çalışma zamanı, wgpu aracılığıyla WebGPU'yu destekler. wgpu alliance with Deno başlıklı blog yayınını inceleyin.
Bu, aşağıdaki şemada gösterildiği gibi Rust ve C++ arasında paralel bir ekosistem oluşturur.

Yeni ufuklar
WebGPU ekosistemi, JavaScript, C++ ve Rust alanlarının ötesine uzanır.
WebGPU uygulamaları üzerinde çalışan mühendisler WebGPU için ortak bir C başlığı da geliştirdiğinden, tercih ettiğiniz programlama dilinde WebGPU için bağlamalar olabilir. Bu, Dawn, wgpu ve diğerlerini hedeflemek için kullanılabilir. Böylece C FFI kullanan diller için bağlamaların oluşturulması kolaylaşır.
Chrome Ekibi, menüler, araç çubukları, geliştirici araçları ve web içeriği de dahil olmak üzere tüm tarayıcı kullanıcı arayüzü öğeleri için varsayılan oluşturma arka ucu olarak Dawn'ı kullanmayı da değerlendiriyor. Bu sayede, her yerel API için ayrı oluşturma uygulamaları gerekmez ve geliştirme süreci basitleştirilir. Bu özellik, macOS ve Windows'da chrome://flags/#skia-graphite
işaretiyle deneysel aşamadadır.