Firefox i Safari obtindran compatibilitat amb WebGPU

Mozilla ha decidit habilitar la compatibilitat amb l'API WebGPU i WGSL (WebGPU Shading Language) al Firefox. Per a la plataforma Windows El suport per a WebGPU s'activarà per defecte al Firefox 141, previst per al 22 de juliol. A continuació, està previst que el suport per a WebGPU s'activi a les compilacions dels mesos següents: Linux и macOS, i després d'un temps a la versió per a la plataforma AndroidPer habilitar manualment WebGPU, podeu utilitzar els paràmetres "dom.webgpu.enabled" i "gfx.webrender.all" a la pàgina about:config.

A Chrome, la compatibilitat amb WebGPU s'oferia per defecte a la versió 113, publicada el maig de 2023. A Safari, està previst que la compatibilitat amb WebGPU s'activi per defecte aquesta tardor (la compatibilitat experimental està disponible des del novembre de 2021). A Firefox, la compatibilitat experimental amb WebGPU ha estat present des del 2020, però només s'activava per defecte a les versions nocturnes de Firefox. La implementació de WebGPU de Firefox es basa en el codi del projecte WGPU, escrit en Rust i capaç d'executar-se sobre les API de gràfics Direct3D 12, Vulkan, OpenGL i Metal.

WebGPU proporciona una API similar a Vulkan, Metal i Direct3D 12 per realitzar operacions al costat de la GPU. A més dels gràfics 3D, WebGPU també cobreix capacitats relacionades amb la descàrrega de càlculs al costat de la GPU i l'execució de shaders. Conceptualment, WebGPU difereix de l'antiga especificació WebGL de la mateixa manera que l'API de gràfics de Vulkan difereix d'OpenGL. Al mateix temps, WebGPU no es basa en una API de gràfics específica, sinó que és una capa universal que utilitza les mateixes primitives de baix nivell que estan disponibles a Vulkan, Metal i Direct3D.

WebGPU permet que les aplicacions JavaScript controlin l'organització, el processament i la transmissió d'ordres a la GPU, i gestionin els recursos associats, la memòria, els buffers, els objectes de textura i els shaders gràfics compilats. Aquest enfocament permet un rendiment més alt de les aplicacions gràfiques reduint la sobrecàrrega i augmentant l'eficiència de treballar amb la GPU.

Amb WebGPU, podeu crear projectes 3D complexos i independents de la plataforma que funcionen tan bé com programes independents que utilitzen directament Vulkan, Metal o Direct3D. WebGPU també ofereix capacitats addicionals per portar programes gràfics nadius a un formulari que es pot executar en navegadors, gràcies a la compilació a WebAssembly.

Característiques principals de WebGPU i diferències respecte a WebGL:

  • Gestió separada de recursos, treball preparatori i transmissió d'ordres a la GPU (a WebGL, un objecte era responsable de tot alhora). Es proporcionen tres contextos separats: GPUDevice per crear recursos com ara textures i buffers; GPUCommandEncoder per codificar ordres individuals, incloses les etapes de representació i càlcul; GPUCommandBuffer per passar a la cua d'execució de la GPU. El resultat es pot representar en una àrea associada a un o més elements del llenç o processar-se sense sortida (per exemple, quan s'executen tasques computacionals). La separació d'etapes facilita la separació de les operacions de creació i subministrament de recursos en diferents controladors que es poden executar en diferents fils.
  • Un enfocament diferent del maneig dels estats. WebGPU proporciona dos objectes: GPURenderPipeline i GPUComputePipeline, que us permeten combinar diferents estats predefinits pel desenvolupador, cosa que fa possible que el navegador no malgasti recursos en treballs addicionals, com ara recompilar shaders. Els estats admesos inclouen: shaders, buffer de vèrtex i dissenys d'atributs, dissenys de grups enganxosos, combinació, profunditat i patrons, formats de sortida posteriors a la renderització.
  • Un model d'enllaç, com les eines d'agrupació de recursos de Vulkan. Per agrupar els recursos en grups, la WebGPU proporciona un objecte GPUBindGroup, que, en el moment d'escriure les ordres, es pot associar amb altres objectes similars per utilitzar-los en shaders. La creació d'aquests grups permet que el controlador realitzi les accions preparatòries necessàries amb antelació i permet al navegador canviar els enllaços de recursos entre trucades de dibuix molt més ràpidament. La disposició dels enllaços de recursos es pot predefinir mitjançant l'objecte GPUBindGroupLayout.

Font: opennet.ru

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster