Dibangun saben wengi Firefox saiki kalebu dhukungan WebGPU

Π’ wengi Firefox mbangun muncul dhukungan specification WebGPU, sing nyedhiyakake antarmuka pemrograman kanggo pangolahan grafis 3D lan komputasi sisih GPU, kanthi konsep padha karo API Vulkan, Metal ΠΈ Langsung3D 12. Spesifikasi kasebut dikembangake dening Mozilla, Google, Apple, Microsoft lan anggota komunitas ing kelompok kerja, digawe dening organisasi W3C.

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 bisa digawe ing WebGPU Shading Language utawa ditemtokake ing format SPIR-V intermediate, banjur diterjemahake menyang basa shader sing didhukung dening driver saiki.

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.

Dibangun saben wengi Firefox saiki kalebu dhukungan WebGPU

Ing Firefox, kanggo ngaktifake WebGPU babagan: config, ana setelan "dom.webgpu.enabled". Rendering CanvasContext uga mbutuhake panggabungan kanggo diaktifake WebRender ("gfx.webrender.all" ing babagan: config), ditulis ing Rust lan outsourcing operasi rendering isi kaca menyang GPU. Implementasi WebGPU adhedhasar kode proyek
wgpu, ditulis ing Rust lan bisa mlaku ing ndhuwur DX12, Vulkan lan Metal API ing Linux, Android, Windows lan macOS (DX11 lan OpenGL ES 3.0 support uga ing pembangunan). Ing paralel, Google ngembangake implementasine liyane, sing kasedhiya ing Cabang kenari Chromium lan diaktifake nggunakake gendera "chrome: // flags / # enable-unsafe-webgpu", nanging nganti saiki mung bisa digunakake ing macOS lan Windows.

Source: opennet.ru

Add a comment