Mozilla ta yanke shawarar ba da damar tallafawa WebGPU API da WGSL (WebGPU Shading Language) a Firefox. Windows Za a kunna tallafin WebGPU ta hanyar tsoho a Firefox 141, wanda aka tsara a ranar 22 ga Yuli. Sannan ana shirin kunna tallafin WebGPU a cikin gine-gine na tsawon watanni masu zuwa: Linux и macOS, kuma bayan wani lokaci a cikin sigar don dandamali AndroidDon kunna WebGPU da hannu, zaku iya amfani da sigogin "dom.webgpu.enabled" da "gfx.webrender.all" akan shafin about:config.
A cikin Chrome, an ba da tallafin WebGPU ta tsohuwa a cikin sigar 113, wanda aka saki a watan Mayu 2023. A cikin Safari, ana shirin ba da tallafin WebGPU ta tsohuwa wannan faɗuwar (ana samun goyan bayan gwaji tun Nuwamba 2021). A cikin Firefox, goyan bayan WebGPU na gwaji yana nan tun 2020, amma an kunna shi ta tsohuwa a ginin Firefox na dare. Aiwatar da WebGPU na Firefox ya dogara ne akan lambar aikin WGPU, wanda aka rubuta cikin Rust kuma yana iya aiki a saman Direct3D 12, Vulkan, OpenGL, da APIs masu zane-zane na ƙarfe.
WebGPU yana ba da irin wannan API zuwa Vulkan, Metal, da Direct3D 12 don yin ayyuka a gefen GPU. Baya ga zane-zane na 3D, WebGPU kuma yana rufe iyakoki masu alaƙa da ƙaddamar da lissafin zuwa gefen GPU da aiwatar da shaders. A zahiri, WebGPU ya bambanta da tsohuwar ƙayyadaddun WebGL ta yadda Vulkan graphics API ya bambanta da OpenGL. A lokaci guda, WebGPU ba ya dogara ne akan takamaiman API na zane ba, amma Layer ne na duniya wanda ke amfani da ƙananan matakan farko waɗanda ke samuwa a cikin Vulkan, Metal, da Direct3D.
WebGPU yana ba da damar aikace-aikacen JavaScript don sarrafa tsari, sarrafawa, da watsa umarni zuwa GPU, da sarrafa albarkatu masu alaƙa, ƙwaƙwalwar ajiya, maɓalli, abubuwa masu rubutu, da haɗar shaders. Wannan tsarin yana ba da damar yin aiki mafi girma na aikace-aikacen zane ta hanyar rage sama da haɓaka aiki tare da GPU.
Tare da WebGPU, zaku iya ƙirƙirar dandamali-agnostic, hadaddun ayyukan 3D waɗanda ke aiwatar da shirye-shirye na tsaye waɗanda ke amfani da Vulkan, Metal, ko Direct3D kai tsaye. WebGPU kuma yana ba da ƙarin damar don jigilar shirye-shiryen zane na asali zuwa nau'i wanda zai iya gudana a cikin masu bincike, godiya ga haɗawa zuwa WebAssembly.
Mabuɗin fasali na WebGPU da bambance-bambance daga WebGL:
- Gudanar da kayan aiki daban, aikin shiryawa da watsa umarni zuwa GPU (a cikin WebGL, abu ɗaya ke da alhakin komai a lokaci ɗaya). An samar da mahallin daban-daban guda uku: GPUDevice don ƙirƙirar albarkatu kamar laushi da buffers; GPUCommandEncoder don ɓoye umarni ɗaya, gami da ma'ana da matakan lissafi; GPUCommandBuffer don wucewa zuwa layin gudu na GPU. Ana iya samar da sakamakon a cikin yanki mai alaƙa da ɗaya ko fiye da abubuwan zane, ko yin ba tare da fitarwa ba (misali, lokacin gudanar da ayyukan ƙididdiga). Rarrabuwar matakai yana sauƙaƙa don raba samar da albarkatu da samar da ayyukan zuwa ma'aikata daban-daban waɗanda zasu iya gudana akan zaren daban-daban.
- Daban-daban tsarin kula da jihohi. WebGPU yana ba da abubuwa guda biyu - GPURenderPipeline da GPUComputePipeline, waɗanda ke ba ku damar haɗa jihohi daban-daban waɗanda mai haɓakawa ya rigaya ya bayyana, wanda ke ba da damar mai binciken ya daina ɓarna albarkatu akan ƙarin aiki, kamar sake tattara shaders. Jihohin da aka goyan baya sun haɗa da: shaders, buffer vertex da shimfidu na sifofi, shimfidu masu ɗaure kai, haɗawa, zurfin da ƙira, tsarin fitarwa bayan bayarwa.
- Samfurin ɗaure, kamar kayan aikin haɗa kayan albarkatu na Vulkan. Don haɗa albarkatu zuwa ƙungiyoyi, WebGPU yana samar da abu na GPUBindGroup, wanda, a lokacin rubuta umarni, ana iya haɗa shi da sauran abubuwa makamantan don amfani a cikin inuwa. Ƙirƙirar irin waɗannan ƙungiyoyin yana ba direba damar aiwatar da ayyukan shirye-shiryen da suka wajaba a gaba, kuma yana ba mai binciken damar canza abubuwan haɗin gwiwa tsakanin zana kira da sauri. Za'a iya siffanta tsarin daurin albarkatun ƙasa ta amfani da abin GPUBundGroupLayout.
source: budenet.ru
