Chrome bakal kalebet dukungan WebGPU

Google parantos ngumumkeun citakan dukungan standar pikeun API grafik WebGPU sareng WGSL (WebGPU Shading Language) dina Chrome 113, anu dijadwalkeun dileupaskeun dina 2 Mei. WebGPU nyadiakeun panganteur programming sarupa Vulkan, Metal, sarta Direct3D 12 pikeun ngajalankeun operasi GPU-sisi kayaning Rendering na komputasi, sarta ogé ngamungkinkeun pamakéan basa shader nulis program anu ngajalankeun di sisi GPU. Palaksanaan WebGPU mimitina ngan ukur diaktipkeun dina ChromeOS, macOS, sareng Windows ngawangun. Pikeun Linux sareng Android, dukungan WebGPU bakal diaktipkeun dina waktos engké.

Salian Chrome, dukungan ékspérimén pikeun WebGPU parantos diuji saprak April 2020 di Firefox sareng saprak Nopémber 2021 di Safari. Pikeun ngaktipkeun WebGPU di Firefox, anjeun kedah nyetél dom.webgpu.enabled sareng gfx.webgpu.force-enabled flags dina about:config. Henteu aya rencana pikeun ngaktifkeun WebGPU sacara standar dina Firefox sareng Safari. Palaksanaan WebGPU anu dikembangkeun pikeun Firefox sareng Chrome sayogi dina bentuk perpustakaan anu misah - Dawn (C++) sareng wgpu (Rust), anu anjeun tiasa dianggo pikeun ngahijikeun dukungan WebGPU kana aplikasi anjeun. Usaha ogé dijalankeun pikeun nambihan dukungan WebGPU kana perpustakaan JavaScript populér anu asli nganggo WebGL. Contona, dukungan pinuh pikeun WebGPU parantos diumumkeun dina Babylon.js, sareng dukungan parsial dina Three.js, PlayCanvas sareng TensorFlow.js.

Conceptually, WebGPU béda ti WebGL dina cara nu sarua yén Vulkan grafik API béda ti OpenGL, tapi WebGPU henteu dumasar kana API grafik husus, tapi mangrupakeun lapisan universal anu ngagunakeun primitif tingkat low sarua kapanggih dina Vulkan, Metal jeung Direct3D. WebGPU nyadiakeun aplikasi JavaScript kalawan kontrol-tingkat low leuwih organisasi, processing jeung pangiriman paréntah ka GPU, ngatur sumberdaya pakait, memori, buffers, objék tékstur jeung shaders grafik disusun. Pendekatan ieu ngamungkinkeun anjeun pikeun ngahontal prestasi anu langkung luhur pikeun aplikasi grafik ku cara ngirangan biaya overhead sareng ningkatkeun efisiensi gawé bareng GPU.

WebGPU ngamungkinkeun pikeun nyieun proyék 3D kompléks pikeun Web nu ngalakukeun teu leuwih goreng ti program mandiri nu langsung ngagunakeun Vulkan, Metal atanapi Direct3D, tapi teu dihijikeun ka platform husus. WebGPU ogé nyadiakeun kamampuhan tambahan pikeun porting program grafik asli kana formulir web-diaktipkeun ngaliwatan kompilasi kana WebAssembly. Salian grafik 3D, WebGPU ogé ngawengku kamampuhan nu patali jeung offloading itungan ka GPU jeung executing shaders.

Fitur utama WebGPU:

  • 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

Tambahkeun komentar