В
Objektif kle WebGPU se bay yon koòdone pwogramasyon ki an sekirite, fasil pou itilize, pòtab ak pèfòmans segondè pou platfòm entènèt la pou pwofite teknoloji grafik 3D ak kapasite API grafik sistèm modèn yo bay, tankou Direct3D 12 sou Windows, Metal. sou macOS, ak Vulkan sou Linux. Konseptyèlman, WebGPU diferan de WebGL nan anpil menm jan ak Vulkan diferan de OpenGL, epi an menm tan an li pa baze sou yon API grafik espesifik, men se yon kouch inivèsèl ki jeneralman itilize menm primitif ba nivo yo te jwenn nan Vulkan. Metal ak Direct3D.
WebGPU bay aplikasyon JavaScript ak kontwòl nivo pi ba sou òganizasyon, pwosesis, ak transmisyon kòmandman nan GPU a, jere resous ki asosye, memwa, tanpon, objè teksti, ak konpile grafik shaders. Apwòch sa a pèmèt ou reyalize pi wo pèfòmans pou aplikasyon grafik lè w diminye depans anlè yo epi ogmante efikasite nan travay ak GPU la.
WebGPU fè li posib pou kreye pwojè 3D konplè pou entènèt ki pa travay pi mal pase pwogram otonòm ki gen aksè dirèkteman nan Vulkan, Metal oswa Direct3D, men ki pa mare nan platfòm espesifik. WebGPU bay kapasite adisyonèl tou lè yo pote pwogram grafik natif natal yo nan yon fòm ki pèmèt entènèt atravè itilizasyon teknoloji WebAssembly. Anplis grafik 3D, WebGPU kouvri tou kapasite ki gen rapò ak dechaje kalkil nan GPU a ak sipòte devlopman shader. Shaders
WebGPU sèvi ak jesyon separe nan resous, travay preparasyon, ak transmisyon nan kòmandman nan GPU a (nan WebGL, yon objè te responsab pou tout bagay nan yon fwa). Yo bay twa kontèks separe:
GPUDevice pou kreye resous tankou tèkstur ak tanpon; GPUCommandEncoder pou kode kòmandman endividyèl, ki gen ladan etap rann ak kalkil; GPUCommandBuffer yo dwe mete ann kriye pou ekzekisyon sou GPU la. Rezilta a ka rann nan yon zòn ki asosye ak youn oswa plis eleman twal, oswa trete san pwodiksyon (pa egzanp, lè w ap fè travay kalkile). Separe etap yo fè li pi fasil yo separe kreyasyon resous ak operasyon preparasyon nan moun kap okipe diferan ki ka kouri sou fil diferan.
Dezyèm diferans ki genyen ant WebGPU ak WebGL se yon apwòch diferan nan manyen eta yo. WebGPU ofri de objè - GPURenderPipeline ak GPUComputePipeline, ki pèmèt ou konbine plizyè eta pre-defini pa pwomotè a, ki pèmèt navigatè a pa gaspiye resous sou travay adisyonèl, tankou recompiling shaders. Eta ki sipòte yo enkli: shaders, tanpon somè ak layout atribi, fòm gwoup kolan, melanje, pwofondè ak modèl, ak fòma pwodiksyon apre rann.
Twazyèm karakteristik WebGPU yo rele modèl obligatwa, lajman
okoumansman de zouti gwoupman resous ki prezan nan Vulkan.
Pou gwoupe resous yo ansanm, WebGPU bay yon objè GPUBindGroup, ki ka asosye ak lòt objè ki sanble pou itilize nan shaders pandan y ap ekri kòmandman yo. Kreye gwoup sa yo pèmèt chofè a fè aksyon preparasyon ki nesesè yo davans, epi li pèmèt navigatè a chanje koneksyon resous ant apèl trase pi vit. Ka Layout nan lyezon resous yo ka predefini lè l sèvi avèk objè a GPUBindGroupLayout.
Nan Firefox, pou pèmèt WebGPU nan about:config, gen yon paramèt "dom.webgpu.enabled". Rann CanvasContext mande tou pou konpozisyon yo aktive
Sous: opennet.ru