Kompania Google shpalli se do të përfshijë si parazgjedhje mbështetje për API-në grafike WebGPU dhe gjuhën e shaders WGSL (Gjuha e Shaders WebGPU) në degën Chrome 113, lëshimi i së cilës pritet më 2 maj. WebGPU ofron një ndërfaqe programimi të ngjashme me Vulkan, Metal dhe Direct3D 12 për të realizuar operacione në anën e GPU-së, të tilla si renderimi dhe llogaritjet, si dhe lejon përdorimin e gjuhës së shaders për të shkruar programe që punojnë në anën e GPU-së. Implementimi i WebGPU do të përfshihet fillimisht vetëm në ndërtimet për ChromeOS, macOS dhe Windows. Për Linux dhe Android, mbështetja për WebGPU do të aktivizohet më vonë.
PĂ«rveç Chrome, mbĂ«shtetje eksperimentale pĂ«r WebGPU po testohet qĂ« nga prilli i vitit 2020 nĂ« Firefox dhe nga nĂ«ntori i vitit 2021 nĂ« Safari. PĂ«r tĂ« aktivizuar WebGPU nĂ« Firefox, duhen vendosur flamujt dom.webgpu.enabled dhe gfx.webgpu.force-enabled nĂ« about:config. Ende nuk ka informacion nĂ« lidhje me planet pĂ«r aktivizimin e WebGPU si parazgjedhje nĂ« Firefox dhe Safari. Implementimet nĂ« zhvillim pĂ«r Firefox dhe Chrome tĂ« WebGPU janĂ« nĂ« dispozicion nĂ« formĂ«n e bibliotekave tĂ« veçanta â Dawn (C++) dhe wgpu (Rust), tĂ« cilat mund tĂ« pĂ«rdoren pĂ«r integrimin e mbĂ«shtetjes WebGPU nĂ« aplikacionet e tyre. Po ashtu, po pĂ«rpiken tĂ« shtohet mbĂ«shtetje pĂ«r WebGPU nĂ« bibliotekat popullore JavaScript, qĂ« fillimisht pĂ«rdorin WebGL. PĂ«r shembull, mbĂ«shtetje e plotĂ« pĂ«r WebGPU Ă«shtĂ« shpallur tashmĂ« nĂ« Babylon.js, ndĂ«rsa mbĂ«shtetje e pjesshme nĂ« Three.js, PlayCanvas dhe TensorFlow.js.
Koncepcioni i WebGPU është ndryshe nga WebGL në përgjithësi ashtu siç është API grafike Vulkan ndryshe nga OpenGL, por WebGPU nuk mbështetet në një API të caktuar grafik, por përfaqëson një ndërfaqe universale që përdor të njëjtat primitive të nivelit të ulët që gjenden në Vulkan, Metal dhe Direct3D. WebGPU ofron aplikacioneve në JavaScript mjete për kontroll të nivelit të ulët mbi organizimin, përpunimin dhe dërgimin e komandave në GPU, menaxhimin e burimeve të lidhura, memorjes, bufereve, objekteve të teksturave dhe shaders grafike të kompozuara. Ky qasje lejon arritjen e performancës më të lartë në aplikacionet grafike përmes uljes së kostove dhe rritjes së efikasitetit në punën me GPU.
WebGPU ofron mundësinë për të krijoni projekte komplekse 3D për Web që funksionojnë njësoj si programet e veçanta që përdorin Vulkan, Metal ose Direct3D, por pa qenë të lidhura me platforma të caktuara. WebGPU gjithashtu ofron mundësi shtesë për portimin e programeve grafike natyrore në një format që mund të funksionojë mbi teknologjitë web, përmes kompilimit në WebAssembly. Përveç grafikës 3D, WebGPU përfshin dhe mundësi të lidhura me ekzekutimin e llogaritjeve në anën e GPU dhe ekzekutimin e shaderëve.
Karakteristikat kryesore të WebGPU:
- Menaxhimi i ndarë i burimeve, punëve përgatitore dhe transferimit të komandave në GPU (në WebGL një objekt iu përgjigj të gjitha në të njëjtën kohë). Ofron tre kontekste të veçanta: GPUDevice për krijimin e burimeve, si teksturat dhe tamponët; GPUCommandEncoder për kodimin e komandave të veçanta, duke përfshirë fazat e renderimit dhe llogaritjes; GPUCommandBuffer për t'u dërguar për ekzekutim në GPU. Rezultati mund të vizatohet në një zonë të lidhur me një ose më shumë elemente canvas, ose të përpunuar pa dalë (për shembull, gjatë kryerjes së detyrave llogaritëse). Ndarja e fazave lehtëson ndarjen e krijimit të burimeve dhe operacioneve përgatitore në menaxherë të ndryshëm, të cilët mund të ekzekutohen në Threads të ndryshme.
- NjĂ« qasje tjetĂ«r pĂ«r procesimin e gjendjeve. NĂ« WebGPU ofrohen dy objekte â GPURenderPipeline dhe GPUComputePipeline, qĂ« mundĂ«sojnĂ« kombinimin e gjendjeve tĂ« ndryshme, tĂ« paracaktuara nga zhvilluesi, duke i dhĂ«nĂ« mundĂ«sinĂ« shfletuesit qĂ« tĂ« mos shpenzojĂ« burime nĂ« kryerjen e punĂ«ve shtesĂ«, tĂ« tilla si rikompilimi i shaderĂ«ve. NdĂ«r gjendjet e mbĂ«shtetura: shaderĂ«t, pĂ«rshkrimet e tamponĂ«ve tĂ« verge dhe atributeve, pĂ«rshkrimet e grupeve tĂ« lidhura, pĂ«rzierja, thellĂ«sia dhe masat, format e daljes pas renderimit.
- Modeli i lidhjeve, i ngjashëm me mjetet e grupimit të burimeve të pranishme në Vulkan. Për të bashkuar burimet në grupe, WebGPU ofron objektin GPUBindGroup, i cili gjatë regjistrimit të komandave mund të lidhet me objekte të tjera të ngjashme për t'u përdorur në shaderë. Krijimi i grupeve të tilla i jep mundësinë drejtuesit që të kryejë paraprakisht veprimet përgatitore të nevojshme, dhe shfletuesit i lejon të ndryshojë ndërlidhjet e burimeve shumë më shpejt midis thirrjeve të renderimit. Shpërndarja e ndërlidhjeve të burimeve mund të përcaktohet paraprakisht duke përdorur objektin GPUBindGroupLayout.
Burimi: opennet.ru
