Chrome vil allerede have WebGPU-understøttelse og vil være aktiveret som standard

WebGPU Chrome

Efter flere års udvikling frigiver Chrome-teamet WebGPU

Få dage siden Google afsløret gennem en annonceret standardunderstøttelsen af ​​WebGPU grafik API og WebGPU Shading Language (WGSL) i Chrome 113 filial, som er planlagt til udgivelse den 2. maj.

For dem, der ikke er klar over WebGPU, bør du vide det giver en API svarende til Vulkan, Metal og Direct3D 12 at udføre GPU-side operationer såsom gengivelse og beregning, og også gør det muligt at bruge et shader-sprog til at skrive programmer på GPU-siden.

Om WebGPU

Konceptuelt, WebGPU adskiller sig fra WebGL på samme måde som Vulkan graphics API adskiller sig fra OpenGL, men WebGPU er ikke baseret på et specifikt grafik-API, det er snarere et lag til generelle formål, der bruger de samme primitiver på lavt niveau, som findes i Vulkan. Metal og Direct3D. WebGPU leverer JavaScript-applikationer med kontrol på lavt niveau over organisationen, behandle og sende kommandoer til GPU'en, administrere tilknyttede ressourcer, hukommelse, buffere, teksturobjekter og kompilerede grafikskyggere. Denne tilgang giver dig mulighed for at opnå højere ydeevne grafikapplikationer ved at reducere overhead og øge GPU-effektiviteten.

WebGPU giver dig mulighed for at oprette komplekse 3D-projekter til internettet der fungerer lige så godt som selvstændige programmer, der direkte bruger Vulkan, Metal eller Direct3D, men ikke er bundet til specifikke platforme. WebGPU'en giver også yderligere muligheder for portering af native grafikprogrammer til en webaktiveret formular ved at kompilere i WebAssembly. Udover 3D-grafik dækker WebGPU også de muligheder, der er forbundet med at overføre beregninger til GPU-siden og køre shaders.

Af de vigtigste funktioner i WebGPU kan vi fremhæve følgende:

  • Separat styring af ressourcer, forberedende arbejde og overførsel af kommandoer til GPU'en (i WebGL var ét objekt ansvarlig for alt på én gang). Der er tre separate kontekster: GPUDenhed til at skabe ressourcer såsom teksturer og buffere; GPUCommandEncoder til at kode individuelle kommandoer, inklusive behandlings- og beregningsstadier; GPUCommandBuffer for at overføre til GPU-udførelseskøen.
    Resultatet kan gengives i et område, der er knyttet til et eller flere lærredselementer, eller gengives uden output (f.eks. ved kørsel af beregningsopgaver). Staging gør det nemt at adskille ressourceoprettelse og klargøring i forskellige controllere, der kan køre på forskellige tråde.
  • En anderledes tilgang til statslig håndtering. WebGPU leverer to objekter, GPURenderPipeline og GPUComputePipeline, der giver dig mulighed for at kombinere forskellige tilstande foruddefineret af udvikleren, hvilket gør det muligt for browseren ikke at spilde ressourcer på yderligere arbejde, såsom genkompilering af shaders. Understøttede tilstande omfatter: shaders, vertexbuffer og attributlayouts, faste gruppelayouts, blanding, dybde og mønstre, outputformater efter gengivelse.
  • En forpligtende model, ligesom Vulkans ressourcepoolingsværktøjer. For at gruppere ressourcer i grupper giver WebGPU et GPUBindGroup-objekt, der kan bindes til andre lignende objekter til brug i shaders under kommandooptagelse.
    Oprettelse af sådanne grupper gør det muligt for controlleren at udføre nødvendige forberedende handlinger på forhånd og tillader browseren at skifte ressourcebindinger mellem draw-kald meget hurtigere. Layoutet af ressourcebindinger kan foruddefineres ved hjælp af GPUBindGroupLayout-objektet.

Ud over Chrome, eksperimentel WebGPU-understøttelse er blevet testet siden april 2020 i Firefox og fra november 2021 på Safari. For at aktivere WebGPU i Firefox skal du indstille dom.webgpu.enabled og gfx.webgpu.force-enabled flag i about:config.

Der er endnu ingen planer om at aktivere WebGPU som standard i Firefox og Safari. WebGPU-implementeringer udviklet til Firefox og Chrome er tilgængelige som separate biblioteker: Dawn (C++) og wgpu (Rust), som du kan bruge til at integrere WebGPU-understøttelse i dine applikationer.

Det er også værd at bemærke, at der arbejdes på at tilføje WebGPU-understøttelse til populære JavaScript-biblioteker, der oprindeligt bruger WebGL. F.eks. er fuld WebGPU-understøttelse allerede erklæret i Babylon.js og delvis i Three.js , PlayCanvas og TensorFlow.js.

Gennemførelsen af WebGPU vil i første omgang kun være aktiveret på builds til ChromeOS, macOS og Windows, mens for Linux og Android vil WebGPU-understøttelse blive aktiveret på et senere tidspunkt.

Endelig, hvis du er interesseret i at vide mere om det, kan du se detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.