Firefox dhe Safari do të marrin mbështetje për WebGPU

Mozilla ka vendosur të aktivizojë mbështetjen për WebGPU API dhe WGSL (WebGPU Shading Language) në Firefox. Për platformën Windows Mbështetja për WebGPU do të aktivizohet si parazgjedhje në Firefox 141, e planifikuar për 22 korrik. Mbështetja për WebGPU është planifikuar të aktivizohet më pas në versionet për muajt në vijim: Linux и macOS, dhe pas një kohe në versionin për platformën AndroidPër të aktivizuar manualisht WebGPU-në, mund të përdorni parametrat "dom.webgpu.enabled" dhe "gfx.webrender.all" në faqen about:config.

Në Chrome, mbështetja për WebGPU ofrohej si parazgjedhje në versionin 113, i cili u publikua në maj 2023. Në Safari, mbështetja për WebGPU është planifikuar të aktivizohet si parazgjedhje këtë vjeshtë (mbështetja eksperimentale ka qenë e disponueshme që nga nëntori 2021). Në Firefox, mbështetja eksperimentale për WebGPU ka qenë e pranishme që nga viti 2020, por aktivizohej si parazgjedhje vetëm në versionet e përnatshme të Firefox. Implementimi i WebGPU i Firefox bazohet në kodin e projektit WGPU, të shkruar në Rust dhe të aftë të funksionojë mbi API-të grafike Direct3D 12, Vulkan, OpenGL dhe Metal.

WebGPU ofron një API të ngjashme me Vulkan, Metal dhe Direct3D 12 për kryerjen e operacioneve në anën e GPU-së. Përveç grafikës 3D, WebGPU mbulon gjithashtu aftësi që lidhen me zhvendosjen e llogaritjeve në anën e GPU-së dhe ekzekutimin e shader-ave. Konceptualisht, WebGPU ndryshon nga specifikimi i vjetër i WebGL në të njëjtën mënyrë që API-ja e grafikës Vulkan ndryshon nga OpenGL. Në të njëjtën kohë, WebGPU nuk bazohet në një API specifike grafike, por është një shtresë universale që përdor të njëjtat primitivë të nivelit të ulët që janë të disponueshme në Vulkan, Metal dhe Direct3D.

WebGPU u mundëson aplikacioneve JavaScript të kontrollojnë organizimin, përpunimin dhe transmetimin e komandave në GPU, dhe të menaxhojnë burimet e lidhura, memorien, bufferët, objektet e teksturës dhe shaderët grafikë të kompiluar. Kjo qasje mundëson performancë më të lartë të aplikacioneve grafike duke zvogëluar shpenzimet e përgjithshme dhe duke rritur efikasitetin e punës me GPU-në.

Me WebGPU, ju mund të krijoni projekte 3D komplekse, të pavarura nga platforma, të cilat performojnë po aq mirë sa programet e pavarura që përdorin drejtpërdrejt Vulkan, Metal ose Direct3D. WebGPU gjithashtu ofron aftësi shtesë për portimin e programeve grafike native në një formular që mund të ekzekutohet në shfletues, falë kompilimit në WebAssembly.

Karakteristikat kryesore të WebGPU dhe ndryshimet nga WebGL:

  • Menaxhimi i veçantë i burimeve, puna përgatitore dhe transmetimi i komandave në GPU (në WebGL një objekt ishte përgjegjës për gjithçka menjëherë). Janë dhënë tre kontekste të veçanta: GPUPajisja për krijimin e burimeve të tilla si teksturat dhe buferët; GPUCommandEncoder për kodimin e komandave individuale, duke përfshirë fazat e interpretimit dhe llogaritjes; GPUCommandBuffer do të vihet në radhë për ekzekutim në GPU. Rezultati mund të jepet në një zonë të lidhur me një ose më shumë elementë të kanavacës, ose të përpunohet pa dalje (për shembull, kur ekzekutohen detyrat llogaritëse). Ndarja e fazave e bën më të lehtë ndarjen e operacioneve të krijimit dhe përgatitjes së burimeve në mbajtës të ndryshëm që mund të funksionojnë në fije të ndryshme.
  • Një qasje e ndryshme ndaj gjendjeve të përpunimit. WebGPU ofron dy objekte - GPURenderPipeline dhe GPUComputePipeline, të cilat ju lejojnë të kombinoni gjendje të ndryshme të paracaktuara nga zhvilluesi, gjë që lejon shfletuesin të mos harxhojë burime për punë shtesë, siç është rikompilimi i shaderëve. Gjendjet e mbështetura përfshijnë: shader, faqosje të tamponit të kulmit dhe atributeve, paraqitje të grupeve ngjitëse, përzierje, thellësi dhe modele dhe formate të daljes pas paraqitjes.
  • Një model i detyrueshëm i ngjashëm me tiparet e grupimit të burimeve të Vulkan. Për të grupuar burimet së bashku, WebGPU ofron një objekt GPUBindGroup, i cili mund të shoqërohet me objekte të tjera të ngjashme për t'u përdorur në shader gjatë shkrimit të komandave. Krijimi i grupeve të tilla i lejon drejtuesit të kryejë paraprakisht veprimet e nevojshme përgatitore dhe i lejon shfletuesit të ndryshojë lidhjet e burimeve midis thirrjeve të tërheqjes shumë më shpejt. Paraqitja e lidhjeve të burimeve mund të paracaktohet duke përdorur objektin GPUBindGroupLayout.

Burimi: opennet.ru

Bleni një host të besueshëm për faqet me mbrojtje DDoS, serverë VPS VDS 🔥 Bleni hosting të besueshëm të faqeve të internetit me mbrojtje DDoS, servera VPS VDS | ProHoster