3 puan yazan GN⁺ 2025-07-17 | 1 yorum | WhatsApp'ta paylaş
  • WebGPU, uzun süren geliştirmenin ardından Firefox 141 Windows sürümünde resmen destekleniyor
  • WebGPU, modern grafik işleme ve yüksek performanslı hesaplama için web tabanlı bir GPU arayüzü; oyun, görselleştirme ve yerel hesaplama düzeyini önemli ölçüde yükseltmesi bekleniyor
  • Firefox içindeki WebGPU uygulaması, Rust tabanlı WGPU kütüphanesi üzerine kuruldu ve Direct3D 12, Metal, Vulkan gibi çeşitli backend'leri destekliyor
  • Şu anda yalnızca Windows üzerinde resmen etkinleştiriliyor; Mac, Linux ve Android desteği de ileride gelecek
  • Performans iyileştirmeleri ve standartlara uyum gibi alanlarda hâlâ ek geliştirme çalışmaları gerekiyor

Windows'ta WebGPU desteğinin anlamı

  • Uzun süredir geliştirilen WebGPU, Firefox 141 ile Windows ortamında resmen sunuldu
  • WebGPU, web içeriğinin kullanıcının GPU'su ile doğrudan entegre olarak yüksek performanslı grafik ve paralel hesaplama gerçekleştirmesini sağlayan modern bir standart
  • Bu teknoloji sayesinde web tabanlı oyunlar, veri görselleştirme, makine öğrenimi gibi alanlarda performans sınırlarının önemli ölçüde genişlemesi bekleniyor
  • WebGPU tutorial, WebGPU samples ve MDN belgeleri üzerinden konuyla ilgili öğrenme ve pratik yapma imkânı var
  • WebGPU, WebGPU W3C standardı ve WGSL standardı ile tanımlanıyor; Mozilla da 2017'den bu yana standardizasyon sürecine aktif olarak katılıyor

Tarayıcılara göre WebGPU durumu

  • Chrome, WebGPU desteğini zaten 2023'ten beri sunuyor
  • Safari 26 için çıkış bu sonbaharda planlanıyor
  • Firefox 141, şu anda yalnızca Windows için resmî destek veriyor; Mac/Linux/Android desteği ise gelecekteki güncellemelerle genişletilecek
  • Firefox Nightly sürümünde ise bugüne kadar Android hariç tüm platformlarda deneysel olarak kullanılabiliyordu

Firefox'un WebGPU uygulaması

  • Firefox'un WebGPU'su, açık kaynaklı Rust kütüphanesi WGPU temel alınarak geliştirildi
    • WGPU, farklı platformlardaki donanımlara göre Direct3D 12, Metal, Vulkan gibi düşük seviyeli grafik API'lerine bağlanıyor
    • Mozilla, WGPU projesinin başlıca katkı sağlayıcılarından biri
    • Rust geliştiricileri için, Firefox WebGPU'ya katkı vermek isteyenlerin başlangıç noktası olarak WGPU projesi uygun görülüyor
  • WGPU, Firefox dışında da yaygın biçimde kullanılıyor ve aktif bir topluluğa sahip

Başlıca zorluklar ve iyileştirme çalışmaları

  • WebGPU, büyük ve karmaşık bir API; şimdiye kadar istikrar çalışmaları daha çok başlıca demolar ve gerçek kullanım senaryoları etrafında yürütüldü
  • Ek iyileştirme gerektiren alanlar:
    • GPU sandbox süreci ile buffer'sız IPC nedeniyle ortaya çıkan performans düşüşünün giderilmesi (hata 1968122, Firefox 142'de performans iyileştirmesi planlanıyor)
    • GPU işlerinin tamamlanma zamanının yalnızca interval timer ile algılanması nedeniyle bekleme süresinin artması (hata 1870699, daha iyi bir yöntemle iyileştiriliyor)
    • importExternalTexture desteğinin olmaması nedeniyle video verisinin decoder'dan GPU'ya doğrudan okunamaması (hata 1827116, geliştirme sürüyor)
  • Gerçek kullanımda bir sorun yaşanırsa, ayrıntılı bilgiler eklenerek Bugzilla'nın WebGPU bileşenine bildirim yapılması isteniyor

Sonraki planlar

  • Windows sonrasında Mac, Linux ve Android için resmî desteğin kademeli olarak genişletilmesi planlanıyor
  • Performans, uyumluluk ve standartlara uyum alanlarında sürekli iyileştirme hedefleniyor
  • WebGPU'nun resmî desteğiyle birlikte web uygulamaları için yeni olasılıkların önünün açılması bekleniyor

1 yorum

 
GN⁺ 2025-07-17
Hacker News görüşleri
  • Gerçekten heyecan verici bir haber, Firefox ekibini tebrik ederim
    Şirketim, Unreal'ı tarayıcıda çalıştırabilmek için geliştirme yapıyor ve Unreal Engine 5 için özel bir WebGPU RHI oluşturduk
    Teknik demoyu bizzat görmek isteyenler aşağıdaki bağlantılara bakabilir
    (yalnızca masaüstünde Chromium tabanlı tarayıcılarda ve bazı Android telefonlarda çalışır)
    Cropout: https://play-dev.simplystream.com/?token=aa91857c-ab14-4c24-963a-36203784474b
    Car configurator: https://garage.cjponyparts.com/

    • Firefox 142 (nightly) üzerinde test ettim
      Cropout uzun süre %0'da kaldı ve 1200'den fazla ağ isteği yaptı
      Sonunda menüye kadar yükleniyor ama arka plan siyah ve sadece UI öğeleri görünüyor
      Shader ayrıştırma sırasında çok sayıda hata çıktı, ayrıca başka hatalar da vardı
      Car configurator ise çeşitli hatalar verip %0'da takılıyor ve yüklenmiyor
      "Oyun dosyaları eksik olduğu için global shader ve içerik başlatılamıyor" mesajı görünüyor
      Keşke Firefox'ta da en azından temel bir test yaptıktan sonra paylaşsaydınız

    • "Yalnızca Chromium tabanlı tarayıcılarda çalışıyor" denmiş ama bu gönderi doğrudan Firefox'un WebGPU'su hakkında olduğu için
      Acaba Firefox uyumlu bir sürümü test etme ya da yayımlama planınız var mı?

    • Pixel 7a'da Android Chrome ile "cropout"u çalıştırmayı denedim, %0'da kaldı
      "car configurator" ise %97~98'e kadar ilerliyor ama sonrasında hiç devam etmiyor

    • Firefox 141 kullanan Windows'ta çalışıp çalışmadığını merak ediyorum
      Çalışmıyorsa nedeni nedir, bilmek isterim

    • macOS için Google Chrome'da ilk bağlantı %0'da takılıp hiç ilerlemedi
      İkinci demo ise %98 ya da %97'de kaldı
      Safari'de de aynı durum vardı

  • Şu an grafik API'lerinin durumuna bakınca, sanki OpenGL döneminden bile daha geriye gidilmiş gibi geliyor
    Modern API'lerin kullanım kolaylığı ya da gerçek anlamda taşınabilirlik ve çapraz platform desteği sunduğunu düşünmüyorum
    Vulkan, Metal, DirectX12 gibi farklı grafik arka uçları için özel wrapper'lar yapmak neredeyse zaman kaybı gibi
    Sanki performans uğruna string yerine tekrar char dizilerine dönmüşüz gibi

    • Nasıl bir söz verilmişti, bunu kim vermişti bilmiyorum
      Grafik API'lerinin amacı her şeyden önce kodu ve veriyi GPU'ya olabildiğince hızlı aktarmaktır; geliştirici deneyimi birinci öncelik değildi
      Bana göre WebGPU, tarayıcı içinde compute ve render işlemlerini oldukça iyi wrapper'lıyor
      Henüz kusursuz değil ama WebGL ya da OpenGL'den daha sezgisel ve keşfedilebilir olduğunu düşünüyorum

    • Sorunun ne olduğunu pek göremiyorum
      Grafik yığınında uzun zamandır düşük seviye API'ler vardı (örnek: Mesa'nın Gallium'u); şimdi bunlar standartlaştı ve kullanıcı bunları doğrudan seçiyor
      Yüksek seviye API'ler hâlâ var ve OpenGL de makul platformlarda destekleniyor
      WebGPU'yu native kodda da gayet kullanılabilir buldum
      Bu düşük seviye API'lerdeki gerçek taşınabilirlik eksikliğinin neredeyse tamamı Apple ve konsol üreticilerinden kaynaklanıyor
      Gerçi konsol üreticilerinin zaten iş birliği yapması beklenmiyordu

    • OpenGL döneminden alınacak ders, tüm platformların aynı yüksek seviye API'yi kullanmasının mutlaka iyi sonuç vereceği değildir
      Sonuçta önemli olan, o platformun donanımını iyi kontrol eden bir API'nin olup olmamasıdır
      OpenGL'i doğrudan çeviren bir wrapper'a her zaman ihtiyaç vardı ve geçmişte bundan kaçınmanın yolu yoktu
      Her donanım türü için en iyi sonucu veren ayrı yaklaşım pratik değil
      Asıl önemli olan, kolay bir çeviri katmanı sunup sunmadığıdır
      Donanıma gerçekten derinlemesine erişmek istiyorsanız, basit ya da genel amaçlı bir arayüz yerine donanıma doğrudan yaklaşmanıza izin veren bir API gerekir

    • OpenGL, 2.0'dan sonra API olarak fazla karmaşık hale geldi; WebGPU ise Vk, D3D12 ve Metal'in özelliklerini oldukça rahat biçimde wrapper'lıyor
      Bence OpenGL'den çok daha iyi tasarlanmış
      Ayrıca D3D11 ve Metalv1 muhtemelen kullanılabilirlik ve performans açısından en iyi denge noktasıydı (özellikle D3D11 performansını Vulkan ve D3D12'de bile yakalamak zor)

    • Ben de katılıyorum
      Geliştirmeye OpenGL ve CUDA interop ile devam edeceğim
      Vulkan, aşırı mühendislik ürünü karmaşıklığına rağmen pratikte bir fayda sunmadığı için sonunda CUDA kullanmaya yöneldim

  • WebGPU'nun tarayıcı dışındaki ortamlara da başarılı biçimde genişleyip
    resmî spesifikasyon kapsamında kullanımı kolay, çapraz platform bir API'ye (yani OpenGL'in yerine geçebilecek bir şeye) dönüşmesini hâlâ umuyorum
    Ancak Rust tarafı dışında native kodda WebGPU kullanmaya yönelik büyük bir akım varmış gibi gelmiyor
    Örneğin Dawn kullanan büyük bir proje duymadım
    Muhtemelen bunun bir nedeni de WebGPU'nun çok geç gelmiş olması; çoğu proje zaten dx, vulkan ve metal üzerinde kendi soyutlama katmanını kurmuştu

    • Sonuçta yaygınlaşacağını sanmıyorum
      Bir miktar sadelik var ama işlevler de epey eksik
      Vulkan'da isteğe bağlı olan bazı özellikler (örneğin render pass) WebGPU'da hâlâ zorunlu
      Bind group'ların statik olması da ayrı bir kullanım zorluğu yaratıyor
      Ayrıca WebGPU'nun çeşitli kısıtları ve gereksiz unsurları var
      Örneğin host tarafından buffer alt bölgelerine doğrudan yazamıyorsunuz; mutlaka ara buffer (staging buffer) kullanmanız gerekiyor
      Alternatif olmadığı için web'de kullanırım ama masaüstünde OpenGL+CUDA interop framework'üyle devam edeceğim
      Daha mantıklı modern bir grafik API'si çıkmasını umuyorum
      cuMemAlloc, cuMemcpy ile bitebilecek bir iş; karmaşık buffer allocation ve binding, pipeline, explicit sync, binding group, descriptor set gibi gereksiz unsurlarla zorlaşıyorsa kullanmak istemem

    • WebGPU, Vulkan düzeyinde optimizasyon ve ince ayarlı kontrol sağlamıyor; performansı da genelde Vulkan kadar iyi değil
      Vulkan'daki çeşitli extension'lar da WebGPU'da henüz desteklenmiyor

    • Zaten mevcut middleware'ler var
      Tarayıcı dışında WebGPU'yu beklemeye gerek olduğunu düşünmüyorum
      Sonuçta API tasarımı baştan tarayıcı sandbox'ına odaklanmıştı ve bunun getirdiği kısıtlar var

    • Bence ismi de büyük bir sorundu
      Ben saf native geliştiricisiyim; "web gpu" adını yıllarca gerçekten sadece web'e özgü bir teknoloji sandım ve ilgilenmedim, ama sonradan bunun yanlış anlaşıldığını fark ettim

  • gpu-allocator https://github.com/Traverse-Research/gpu-allocator/ crate'imizin çok daha fazla kişi tarafından bilinecek olmasından büyük memnuniyet duyuyorum
    Şimdiye kadar bunu wgpu'nun dx12 backend'inde ve kendi GPU benchmark ürünümüz evolve https://www.evolvebenchmark.com/ içinde kullanıyorduk
    Bundan sonra daha geniş kullanım alanı bulmasını umuyorum

  • macOS için Firefox Nightly'de WebGPU'nun zaten kullanılabildiğini ancak şimdi fark ettim
    https://www.mozilla.org/en-US/firefox/channel/desktop/ adresinden Mac için nightly'yi indirip
    https://huggingface.co/spaces/reach-vb/github-issue-generator-webgpu demosunu çalıştırdım ve sorunsuz çalıştı
    Bu demo, SmolLM2 modelini WebAssembly'ye derleyip yapılandırılmış veri çıkarımı için kullanıyor
    Daha önce bunun yalnızca Chrome'da çalıştığını sanıyordum, ama normal Firefox (Stable) sürümünde "WebGPU desteklenmiyor" hatası alıyorum

    • Firefox WebGPU ekibinin bir üyesiyim
      macOS desteğini yakında resmî olarak sunacağız
      Windows'un yanı sıra yakında Mac, Linux ve en son Android'de de WebGPU desteği vermeyi planlıyoruz
  • "Mac, Linux ve en son Android'de WebGPU desteği vermeyi planlıyoruz" kısmını görmek sevindirici
    Ama şu aşamada büyük beklentiye girmek zor
    Linux tarayıcılarında WebGPU desteğinin şimdiye kadar olmamasının nedeni muhtemelen yeni bir attack surface oluşturmanın fazlasıyla zor olması
    Bu karmaşıklık, web standartlarının devasa boyutunun tarayıcı geliştirmeyi ne kadar zorlaştırdığını da gösteriyor
    Netscape döneminden kalan tasarım kararlarının etkisi bugün bile sürüyor; bunlar web tarayıcılarının tekelleşmesi ve finansman sorunları gibi kaygıların kökünde yatıyor gibi görünüyor

    • Hangi Linux olduğuna bağlı
      Android/Linux, WebOS/Linux, ChromeOS/Linux üzerinde WebGPU zaten destekleniyor
      Ancak GNU/Linux'ta bu tür iş yükleri için desteğin, tarayıcı üreticileri açısından düşük öncelikli kaldığını gösteriyor
  • Linux için olan uygulamayı da heyecanla bekliyorum
    WebGPU çıktığında denenmeye değer demolar var mı, merak ediyorum

  • Firefox, Chrome'dan önce Linux'ta WebGPU desteği sunacak gibi görünüyor

    • Açıkçası biraz şaşırtıcı
      dawn (Google'ın WebGPU implementasyonu) Linux'ta oldukça iyi çalışmasına rağmen Firefox'un daha önce destek vermesi ilginç
  • Nihayet WebGPU desteği başlıyor; emeği geçen herkesi alkışlıyorum
    WebGPU ile yalnızca Chrome'da deney yapmak biraz rahatsız ediciydi
    Safari de yakın zamanda preview sürümünde destek vermeye başladı

  • Ana projelerimden birinde neredeyse 2 yıldır wgpu kullanıyorum
    Bu WebGPU genişlemesi sayesinde bakım yapanların sayısının artmasını
    ve 18 ay önce açtığım issue'ların daha hızlı çözülmesini umuyorum
    Henüz Rust'a el atmadım ama bir gün doğrudan katkı sunacak motivasyon ve zamanı bulmayı isterim
    wgpu-native binding'lerine bağımlıyım ve güncellemeler yavaş geliyor
    Örneğin geçen hafta nihayet v25'e geçebildik, ama sadece birkaç gün önce v26 çıkmıştı