Π
Tujuan utama WebGPU yaiku nyedhiyakake antarmuka pemrograman sing aman, gampang pangguna, portabel, lan kinerja dhuwur kanggo platform Web kanggo nggunakake teknologi grafis 3D lan kemampuan sing diwenehake dening API grafis sistem modern, kayata Direct3D 12 ing Windows, Metal. ing macOS, lan Vulkan ing Linux. Secara konseptual, WebGPU beda karo WebGL kanthi cara sing padha karo Vulkan beda karo OpenGL, lan ing wektu sing padha ora adhedhasar API grafis tartamtu, nanging minangka lapisan universal sing umume nggunakake primitif tingkat rendah sing padha sing ditemokake ing Vulkan. Metal lan Direct3D.
WebGPU nyedhiyakake aplikasi JavaScript kanthi kontrol tingkat ngisor babagan organisasi, pangolahan, lan transmisi printah menyang GPU, ngatur sumber daya, memori, buffer, obyek tekstur, lan shader grafis sing dikompilasi. Pendekatan iki ngidini sampeyan entuk kinerja sing luwih dhuwur kanggo aplikasi grafis kanthi nyuda biaya overhead lan nambah efisiensi nggarap GPU.
WebGPU ndadekake iku bisa kanggo nggawe proyèk 3D Komplek lengkap kanggo Web sing bisa ora Samsaya Awon saka program dewekan sing langsung ngakses Vulkan, Metal utawa Direct3D, nanging ora disambungake menyang platform tartamtu. WebGPU uga menehi kemampuan tambahan nalika porting program grafis native menyang wangun web-aktif liwat nggunakake teknologi WebAssembly. Saliyane grafis 3D, WebGPU uga nyakup kabisan sing ana gandhengane karo kalkulasi ngunggah menyang GPU lan ndhukung pangembangan shader. Shaders
WebGPU nggunakake manajemen sumber daya sing kapisah, kerja persiapan, lan transmisi perintah menyang GPU (ing WebGL, siji obyek tanggung jawab kanggo kabeh bebarengan). Telung konteks sing kapisah diwenehake:
GPUDevice kanggo nggawe sumber daya kayata tekstur lan buffer; GPUCommandEncoder kanggo ngodhe prentah individu, kalebu tahap rendering lan komputasi; GPUCommandBuffer bakal antri kanggo eksekusi ing GPU. Asil bisa ditampilake ing area sing ana gandhengane karo siji utawa luwih unsur kanvas, utawa diproses tanpa output (contone, nalika nindakake tugas komputasi). Misahake tahapan nggawe luwih gampang kanggo misahake operasi nggawe lan persiapan sumber daya menyang panangan sing beda-beda sing bisa mlaku ing benang sing beda-beda.
Bentenane kapindho ing antarane WebGPU lan WebGL yaiku pendekatan sing beda kanggo nangani negara. WebGPU nawakake rong obyek - GPURenderPipeline lan GPUComputePipeline, sing ngidini sampeyan nggabungake macem-macem negara sing wis ditemtokake dening pangembang, sing ngidini browser ora mbuwang sumber daya ing karya tambahan, kayata recompiling shaders. Negara sing didhukung kalebu: shader, buffer vertex lan tata letak atribut, tata letak grup lengket, campuran, ambane lan pola, lan format output post-render.
Fitur katelu saka WebGPU diarani model binding, umume
kaya alat pengelompokan sumber daya sing ana ing Vulkan.
Kanggo nglumpukake sumber daya bebarengan, WebGPU nyedhiyakake obyek GPUBindGroup, sing bisa digandhengake karo obyek liyane sing padha kanggo digunakake ing shader nalika nulis printah. Nggawe grup kuwi ngidini driver kanggo nindakake tumindak preparatory perlu ing advance, lan ngidini browser kanggo ngganti bindings sumber antarane tarik telpon luwih cepet. Tata letak ikatan sumber daya bisa ditemtokake kanthi nggunakake obyek GPUBindGroupLayout.
Ing Firefox, kanggo ngaktifake WebGPU babagan: config, ana setelan "dom.webgpu.enabled". Rendering CanvasContext uga mbutuhake panggabungan kanggo diaktifake
Source: opennet.ru