„Firefox“ ir „Safari“ gaus „WebGPU“ palaikymą

„Mozilla“ nusprendė „Firefox“ naršyklėje įjungti „WebGPU API“ ir „WegGPU Shading Language“ (WebGPU šešėliavimo kalbos) palaikymą. Platformai... Windows „WebGPU“ palaikymas bus įjungtas pagal numatytuosius nustatymus „Firefox 141“ versijoje, numatyta liepos 22 d. Planuojama, kad „WebGPU“ palaikymas bus įjungtas versijose šiais mėnesiais: Linux и macOS, ir po kurio laiko platformos versijoje AndroidNorėdami rankiniu būdu įjungti „WebGPU“, galite naudoti parametrus „dom.webgpu.enabled“ ir „gfx.webrender.all“, esančius puslapyje „about:config“.

„Chrome“ naršyklėje „WebGPU“ palaikymas pagal numatytuosius nustatymus buvo siūlomas 113 versijoje, išleistoje 2023 m. gegužės mėn. „Safari“ naršyklėje „WebGPU“ palaikymas planuojamas įjungti pagal numatytuosius nustatymus šį rudenį (eksperimentinis palaikymas galimas nuo 2021 m. lapkričio mėn.). „Firefox“ naršyklėje eksperimentinis „WebGPU“ palaikymas buvo teikiamas nuo 2020 m., tačiau pagal numatytuosius nustatymus buvo įjungtas tik naktinėse „Firefox“ versijose. „Firefox“ „WebGPU“ įdiegimas pagrįstas WGPU projekto kodu, parašytu „Rust“ kalba ir galinčiu veikti naudojant „Direct3D 12“, „Vulkan“, „OpenGL“ ir „Metal“ grafikos API.

„WebGPU“ teikia panašią API kaip „Vulkan“, „Metal“ ir „Direct3D 12“, skirtą operacijoms atlikti GPU pusėje. Be 3D grafikos, „WebGPU“ taip pat apima galimybes, susijusias su skaičiavimų perkėlimu į GPU pusę ir šešėliavimo programų vykdymu. Konceptualiai „WebGPU“ skiriasi nuo senosios „WebGL“ specifikacijos panašiai, kaip „Vulkan“ grafikos API skiriasi nuo „OpenGL“. Tuo pačiu metu „WebGPU“ nėra pagrįstas konkrečia grafikos API, o yra universalus sluoksnis, kuris naudoja tuos pačius žemo lygio primityvus, kurie yra prieinami „Vulkan“, „Metal“ ir „Direct3D“.

„WebGPU“ leidžia „JavaScript“ programoms valdyti komandų organizavimą, apdorojimą ir perdavimą į GPU, taip pat valdyti susijusius išteklius, atmintį, buferius, tekstūros objektus ir kompiliuotus grafikos šešėliavimo įrankius. Šis metodas leidžia pasiekti didesnį grafikos programų našumą, sumažinant pridėtines išlaidas ir padidinant darbo su GPU efektyvumą.

Naudodami „WebGPU“ galite kurti platformoms nepriklausomus, sudėtingus 3D projektus, kurie veikia taip pat gerai, kaip ir atskiros programos, tiesiogiai naudojančios „Vulkan“, „Metal“ arba „Direct3D“. „WebGPU“ taip pat suteikia papildomų galimybių perkelti vietines grafikos programas į naršyklėse veikiančią formą, nes galima kompiliuoti į „WebAssembly“.

Pagrindinės „WebGPU“ savybės ir skirtumai nuo „WebGL“:

  • Atskiras resursų valdymas, parengiamieji darbai ir komandų perdavimas į GPU (WebGL už viską iš karto buvo atsakingas vienas objektas). Pateikiami trys atskiri kontekstai: GPUDevice ištekliams, tokiems kaip tekstūros ir buferiai, kurti; GPUCommandEncoder, skirtas koduoti atskiras komandas, įskaitant atvaizdavimo ir skaičiavimo etapus; GPUCommandBuffer perduoti į GPU paleidimo eilę. Rezultatas gali būti pateiktas srityje, susietoje su vienu ar daugiau drobės elementų, arba be išvesties (pavyzdžiui, vykdant skaičiavimo užduotis). Etapų atskyrimas leidžia lengviau atskirti išteklių kūrimo ir aprūpinimo operacijas į skirtingas tvarkykles, kurios gali veikti skirtingose ​​gijose.
  • Kitoks požiūris į būsenų valdymą. WebGPU pateikia du objektus – GPURenderPipeline ir GPUComputePipeline, kurie leidžia derinti skirtingas kūrėjo iš anksto nustatytas būsenas, o tai leidžia naršyklei nešvaistyti resursų papildomam darbui, pavyzdžiui, perkompiliuoti atspalvius. Palaikomos būsenos: šešėliai, viršūnių buferio ir atributų išdėstymai, lipnių grupių išdėstymai, maišymas, gylis ir modeliai, išvesties formatai po pateikimo.
  • Įpareigojantis modelis, panašus į „Vulkan“ išteklių grupavimo įrankius. Norėdami sugrupuoti išteklius į grupes, WebGPU pateikia GPUBindGroup objektą, kuris komandų rašymo metu gali būti susietas su kitais panašiais objektais naudoti šešėliuose. Sukūrus tokias grupes, vairuotojas gali iš anksto atlikti reikiamus parengiamuosius veiksmus, o naršyklė daug greičiau gali keisti išteklių susiejimą tarp piešimo iškvietimų. Išteklių susiejimo išdėstymas gali būti iš anksto nustatytas naudojant GPUBindGroupLayout objektą.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster