Gipadayag sa W3C ang draft nga sumbanan sa WebGPU

Gipagawas sa W3C ang unang mga draft sa WebGPU ug WebGPU Shading Language (WGSL) nga mga detalye, nga naghubit sa mga API alang sa pagpahigayon sa mga operasyon sa GPU sama sa pag-render ug pag-compute, ingon man usa ka shader nga pinulongan alang sa pagsulat sa mga programa nga nagdagan sa GPU. susama sa konsepto sa Vulkan, Metal ug Direct3D 12 API. Ang mga detalye giandam sa usa ka working group nga naglakip sa mga engineer gikan sa Mozilla, Google, Apple ug Microsoft.

Sa konsepto, ang WebGPU lahi sa WebGL sa parehas nga paagi nga ang Vulkan graphics API lahi sa OpenGL, apan wala kini gibase sa usa ka piho nga graphics API, apan usa ka unibersal nga layer nga naggamit sa parehas nga ubos nga lebel nga mga primitibo nga makita sa Vulkan, Metal ug Direkta3D. 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 nga makab-ot ang mas taas nga pasundayag alang sa mga aplikasyon sa graphic pinaagi sa pagkunhod sa mga gasto sa overhead ug pagdugang sa kahusayan sa pagtrabaho kauban ang GPU.

Gipaposible sa WebGPU ang paghimo og mga komplikadong 3D nga proyekto para sa Web nga dili mas grabe pa kay sa mga standalone nga programa nga direktang nag-access sa Vulkan, Metal o Direct3D, apan wala gihigot sa piho nga mga plataporma. Naghatag usab ang WebGPU og dugang nga mga kapabilidad alang sa pag-port sa mga lumad nga mga programa sa graphic ngadto sa usa ka web-enabled nga porma pinaagi sa pag-compile sa WebAssembly. Dugang sa 3D graphics, ang WebGPU naglakip usab sa mga kapabilidad nga may kalabutan sa pag-offload sa mga kalkulasyon ngadto sa GPU ug pag-execute 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