Π
Ang yawe nga tumong sa WebGPU mao ang paghatag og luwas, user-friendly, madaladala, ug high-performance programming interface alang sa Web platform aron magamit ang 3D graphics nga mga teknolohiya ug mga kapabilidad nga gihatag sa modernong system graphics APIs, sama sa Direct3D 12 sa Windows, Metal. sa macOS, ug Vulkan sa Linux. Sa konsepto, ang WebGPU lahi sa WebGL sa parehas nga paagi nga ang Vulkan lahi sa OpenGL, ug sa samang higayon wala kini gibase sa usa ka piho nga graphics API, apan usa ka unibersal nga layer nga kasagaran naggamit sa parehas nga ubos nga lebel nga mga primitibo nga makita sa Vulkan, Metal ug Direct3D.
Ang WebGPU naghatag sa mga aplikasyon sa JavaScript nga adunay ubos nga lebel nga kontrol sa organisasyon, pagproseso, ug pagpasa sa mga sugo ngadto sa GPU, pagdumala sa kaubang mga kapanguhaan, memorya, mga 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 bug-os nga komplikadong mga proyekto sa 3D alang sa Web nga nagtrabaho nga dili mas grabe kay sa mga standalone nga mga 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 sa pag-port sa mga lumad nga mga programa sa graphic sa usa ka porma nga magamit sa web pinaagi sa paggamit sa teknolohiya sa WebAssembly. Dugang sa 3D graphics, ang WebGPU naglangkob usab sa mga kapabilidad nga may kalabutan sa pag-offload sa mga kalkulasyon ngadto sa GPU ug pagsuporta sa pagpalambo sa shader. Mga shaders
Ang WebGPU naggamit ug bulag nga pagdumala sa mga kahinguhaan, buluhaton sa pagpangandam, ug pagpasa sa mga sugo ngadto sa GPU (sa WebGL, usa ka butang ang responsable sa tanan sa makausa). 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 paghubad ug mga yugto sa pagkuwenta; Ang GPUCommandBuffer i-queue para ipatuman sa GPU. Ang resulta mahimong ma-render sa usa ka lugar nga may kalabotan sa usa o daghang mga elemento sa canvas, o maproseso nga walaβy output (pananglitan, kung nagdagan sa mga buluhaton sa pagkalkula). Ang pagbulag sa mga yugto makapasayon ββsa pagbulag sa mga operasyon sa paghimo ug pag-andam sa kahinguhaan ngadto sa lain-laing mga tigdumala nga mahimong modagan sa lain-laing mga hilo.
Ang ikaduha nga kalainan tali sa WebGPU ug WebGL usa ka lahi nga pamaagi sa pagdumala sa mga estado. Nagtanyag ang WebGPU og duha ka butang - GPURenderPipeline ug GPUComputePipeline, nga nagtugot kanimo sa paghiusa sa lainlaing mga estado nga gitakda nang daan sa developer, nga nagtugot 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, ug post-render output formats.
Ang ikatulo nga bahin sa WebGPU gitawag nga nagbugkos nga modelo, kadaghanan
nagpahinumdom sa mga kahimanan sa paggrupo sa kahinguhaan nga anaa sa Vulkan.
Sa paggrupo sa mga kahinguhaan, ang WebGPU naghatag ug GPUBindGroup nga butang, nga mahimong i-uban sa ubang susama nga mga butang para gamiton sa mga shader samtang nagsulat og mga sugo. 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.
Sa Firefox, aron mahimo ang WebGPU sa about:config, adunay setting nga "dom.webgpu.enabled". Ang paghubad sa CanvasContext nanginahanglan usab sa pag-composite aron mahimo
Source: opennet.ru