Ang suporta sa WebGPU ma-enable sa Chrome

Gipahibalo sa Google ang default nga suporta alang sa WebGPU graphics API ug WebGPU Shading Language (WGSL) sa Chrome 113, nga gikatakda nga ipagawas sa Mayo 2. Naghatag ang WebGPU og API nga susama sa Vulkan, Metal, ug Direct3D 12 alang sa pagpahigayon sa mga operasyon sa kilid sa GPU sama sa pag-render ug pag-compute, ug gitugotan ka usab nga mogamit og shader nga pinulongan sa pagsulat sa mga programa sa kilid sa GPU. Ang pagpatuman sa WebGPU ma-enable ra sa sinugdanan sa mga build para sa ChromeOS, macOS, ug Windows. Alang sa Linux ug Android, ang suporta sa WebGPU ma-aktibo sa ulahi nga petsa.

Dugang sa Chrome, ang eksperimento nga suporta sa WebGPU gisulayan sukad Abril 2020 sa Firefox ug sukad Nobyembre 2021 sa Safari. Aron mahimo ang WebGPU sa Firefox, ibutang ang dom.webgpu.enabled ug gfx.webgpu.force-enabled nga mga bandila sa about:config. Wala'y plano nga mahimo ang WebGPU nga default sa Firefox ug Safari. Ang mga implementasyon sa WebGPU nga gihimo para sa Firefox ug Chrome anaa sa porma sa bulag nga mga librarya - Dawn (C++) ug wgpu (Rust), nga imong magamit sa pag-integrate sa suporta sa WebGPU sa imong mga aplikasyon. Nagpadayon usab ang trabaho aron idugang ang suporta sa WebGPU sa mga sikat nga librarya sa JavaScript nga lumad nga naggamit sa WebGL. Pananglitan, ang bug-os nga suporta alang sa WebGPU gipahibalo na sa Babylon.js, ug partial nga suporta sa Three.js, PlayCanvas ug TensorFlow.js.

Sa konsepto, ang WebGPU lahi sa WebGL sa parehas nga paagi nga ang Vulkan graphics API lahi sa OpenGL, apan ang WebGPU wala gibase sa usa ka piho nga graphics API, apan usa ka kinatibuk-ang katuyoan nga layer nga naggamit sa parehas nga ubos nga lebel nga mga primitibo nga makita sa Vulkan, Metal, ug Direct3D. Naghatag ang WebGPU sa mga aplikasyon sa JavaScript nga adunay ubos nga lebel nga kontrol sa organisasyon, pagproseso ug paghatud sa mga mando sa GPU, pagdumala sa mga kauban nga mga kapanguhaan, memorya, buffer, mga butang sa texture, ug gihugpong nga mga shaders sa graphics. Kini nga pamaagi nagtugot kanimo sa pagkab-ot sa mas taas nga performance nga mga aplikasyon sa graphics pinaagi sa pagkunhod sa overhead ug pagdugang sa kahusayan sa GPU.

Gipaposible sa WebGPU ang paghimo og komplikadong mga proyekto sa 3D alang sa Web nga nagtrabaho ingon man ang mga standalone nga mga programa nga direktang naggamit sa Vulkan, Metal o Direct3D, apan wala gihigot sa piho nga mga plataporma. Naghatag usab ang WebGPU og dugang nga mga kapilian alang sa pag-port sa lumad nga mga programa sa graphic sa usa ka porma nga gipagana sa web pinaagi sa pag-compile sa WebAssembly. Dugang pa sa 3D graphics, ang WebGPU usab naglangkob sa mga posibilidad nga nalangkit sa pag-offload sa mga kalkulasyon sa GPU nga bahin ug sa pagpatuman sa mga shaders.

Pangunang mga bahin sa WebGPU:

  • Gilain nga pagdumala sa mga kahinguhaan, trabaho sa pag-andam ug pagpasa sa mga mando sa GPU (sa WebGL, usa ka butang ang responsable sa tanan sa usa ka higayon). Tulo ka bulag nga konteksto ang gihatag: GPUDevice alang sa paghimo og mga kapanguhaan sama sa mga texture ug buffer; GPUCommandEncoder para sa pag-encode sa tagsa-tagsa nga mga sugo, lakip na ang mga yugto sa paghubad ug pagkalkula; GPUCommandBuffer nga ipasa sa GPU run queue. Ang resulta mahimong ma-render sa usa ka lugar nga nalangkit sa usa o daghan pa nga mga elemento sa canvas, o ma-render nga walay output (pananglitan, kung nagdagan sa mga buluhaton sa pagkalkula). Ang pagbulag sa mga yugto makapasayon ​​sa pagbulag sa mga operasyon sa paghimo ug paghatag ug mga kapanguhaan ngadto sa lain-laing mga tigdumala nga mahimong modagan sa lain-laing mga hilo.
  • Lahi nga pamaagi sa pagdumala sa mga estado. Naghatag ang WebGPU og duha ka mga butang - GPURenderPipeline ug GPUComputePipeline, nga nagtugot kanimo sa paghiusa sa lainlaing mga estado nga gitakda nang daan sa developer, nga nagpaposible sa browser nga dili mag-usik sa mga kapanguhaan sa dugang nga trabaho, sama sa pag-recompile sa mga shaders. Ang gisuportahan nga mga estado naglakip sa: shaders, vertex buffer ug attribute layouts, sticky group layouts, blending, depth ug patterns, post-render output formats.
  • Usa ka nagbugkos nga modelo, sama sa Vulkan's resource grouping tools. Sa paggrupo sa mga kahinguhaan ngadto sa mga grupo, ang WebGPU naghatag ug GPUBindGroup nga butang, nga, sa panahon sa pagsulat sa mga sugo, mahimong i-uban sa ubang susama nga mga butang para gamiton sa mga shader. Ang paghimo sa ingon nga mga grupo nagtugot sa drayber sa paghimo sa gikinahanglan nga mga aksyon sa pag-andam daan, ug gitugotan ang browser nga usbon ang mga pagbugkos sa kapanguhaan tali sa mga tawag sa draw nga labi ka paspas. Ang layout sa resource bindings mahimong ma-predefine gamit ang GPUBindGroupLayout object.

Source: opennet.ru

Idugang sa usa ka comment