Mozilla parantos mutuskeun pikeun ngaktipkeun dukungan pikeun WebGPU API sareng WGSL (WebGPU Shading Language) dina Firefox. Pikeun platformna Windows Pangrojong WebGPU bakal diaktipkeun sacara standar dina Firefox 141, dijadwalkeun tanggal 22 Juli. Pangrojong WebGPU teras direncanakeun bakal diaktipkeun dina versi salajengna salami sababaraha bulan ieu: Linux и macOS, sareng saatos sababaraha waktos dina vérsi pikeun platform éta AndroidPikeun ngaktipkeun WebGPU sacara manual, anjeun tiasa nganggo parameter "dom.webgpu.enabled" sareng "gfx.webrender.all" dina halaman about:config.
Dina Chrome, dukungan WebGPU ditawarkeun sacara standar dina versi 113, dirilis dina Méi 2023. Dina Safari, dukungan WebGPU direncanakeun bakal diaktipkeun sacara standar dina usum gugur ieu (pangrojong ékspérimén parantos sayogi ti Nopémber 2021). Dina Firefox, dukungan WebGPU ékspérimén parantos aya ti saprak 2020, tapi ngan ukur diaktipkeun sacara standar dina ngawangun wengi Firefox. Palaksanaan WebGPU Firefox dumasar kana kode proyék WGPU, ditulis dina Rust tur sanggup ngajalankeun on luhureun Direct3D 12, Vulkan, OpenGL, sarta API grafik Metal.
WebGPU nyayogikeun API anu sami sareng Vulkan, Metal, sareng Direct3D 12 pikeun ngalakukeun operasi di sisi GPU. Salian grafik 3D, WebGPU ogé nyertakeun kamampuhan nu patali jeung offloading itungan ka sisi GPU sarta executing shaders. Sacara konsép, WebGPU bénten sareng spésifikasi WebGL lami dina cara anu sami sareng API grafik Vulkan bénten sareng OpenGL. Dina waktos anu sami, WebGPU henteu dumasar kana API grafik khusus, tapi mangrupikeun lapisan universal anu nganggo primitif tingkat rendah anu sami anu sayogi dina Vulkan, Metal, sareng Direct3D.
WebGPU ngamungkinkeun aplikasi JavaScript ngadalikeun organisasi, ngolah, jeung pangiriman paréntah ka GPU, sarta ngatur sumberdaya pakait, memori, buffers, objék tékstur, sarta shaders grafik disusun. Pendekatan ieu ngamungkinkeun kinerja aplikasi grafik anu langkung luhur ku cara ngirangan overhead sareng ningkatkeun efisiensi damel sareng GPU.
Kalayan WebGPU, anjeun tiasa nyiptakeun platform-agnostik, proyék 3D kompleks anu ngalaksanakeun ogé program mandiri anu langsung nganggo Vulkan, Metal, atanapi Direct3D. WebGPU ogé nyadiakeun kamampuhan tambahan pikeun porting program grafik asli ka formulir nu bisa dijalankeun dina panyungsi, hatur nuhun kana kompilasi ka WebAssembly.
Fitur konci WebGPU sareng bédana tina WebGL:
- Manajemén misah sumberdaya, karya preparatory sarta pangiriman paréntah ka GPU (dina WebGL hiji obyék éta jawab sagalana sakaligus). Tilu konteks misah disadiakeun: GPUDevice pikeun nyieun sumberdaya kayaning tékstur jeung buffers; GPUCommandEncoder pikeun ngodekeun paréntah individu, kalebet tahapan rendering sareng komputasi; GPUCommandBuffer bakal antrian pikeun palaksanaan on GPU. Hasilna tiasa ditingalikeun di daérah anu aya hubunganana sareng hiji atanapi langkung elemen kanvas, atanapi diolah tanpa kaluaran (contona, nalika ngajalankeun tugas ngitung). Misahkeun tahapan ngagampangkeun pikeun misahkeun produksi sumber daya sareng operasi persiapan kana panangan anu béda anu tiasa dijalankeun dina benang anu béda.
- Pendekatan anu béda pikeun ngolah nagara. WebGPU nawiskeun dua obyék - GPURenderPipeline sareng GPUComputePipeline, anu ngamungkinkeun anjeun ngagabungkeun rupa-rupa nagara anu tos ditetepkeun ku pamekar, anu ngamungkinkeun browser henteu miceunan sumber pikeun padamelan tambahan, sapertos nyusun ulang shaders. Kaayaan anu dirojong kalebet: shaders, buffer vertex sareng perenah atribut, perenah grup caket, blending, jero sareng pola, sareng format kaluaran post-render.
- Model anu ngariung sapertos fitur pengelompokan sumber daya Vulkan. Pikeun ngahijikeun sumberdaya, WebGPU nyayogikeun obyék GPUBindGroup, anu tiasa dikaitkeun sareng objék anu sami pikeun dianggo dina shaders nalika nyerat paréntah. Nyiptakeun grup sapertos kitu ngamungkinkeun supir ngalaksanakeun tindakan persiapan anu dipikabutuh sateuacanna, sareng ngamungkinkeun browser pikeun ngarobih beungkeutan sumber daya antara telepon tarik langkung gancang. Tata perenah beungkeutan sumberdaya tiasa didefinisikeun nganggo obyék GPUBindGroupLayout.
sumber: opennet.ru
