Firefox e Safari obterán compatibilidade con WebGPU

Mozilla decidiu activar a compatibilidade coa API de WebGPU e WGSL (WebGPU Shading Language) en Firefox. Para a plataforma Windows A compatibilidade con WebGPU estará activada por defecto en Firefox 141, programada para o 22 de xullo. Despois, está previsto que a compatibilidade con WebGPU estea activada nas compilacións dos seguintes meses: Linux и macOS, а через некоторое время и в версии для платформы Android. Для ручного включения WebGPU можно использовать параметры «dom.webgpu.enabled» и «gfx.webrender.all» на странице about:config.

En Chrome, a compatibilidade con WebGPU ofrecíase por defecto na versión 113, lanzada en maio de 2023. En Safari, está previsto que a compatibilidade con WebGPU se active por defecto este outono (a compatibilidade experimental está dispoñible desde novembro de 2021). En Firefox, a compatibilidade experimental con WebGPU está presente desde 2020, pero só se activaba por defecto nas versións nocturnas de Firefox. A implementación de WebGPU de Firefox baséase no código do proxecto WGPU, escrito en Rust e capaz de executarse sobre as API gráficas de Direct3D 12, Vulkan, OpenGL e Metal.

WebGPU proporciona unha API semellante a Vulkan, Metal e Direct3D 12 para realizar operacións no lado da GPU. Ademais dos gráficos 3D, WebGPU tamén abrangue capacidades relacionadas coa descarga de cálculos ao lado da GPU e a execución de sombreadores. Conceptualmente, WebGPU difire da antiga especificación WebGL do mesmo xeito que a API gráfica de Vulkan difire de OpenGL. Ao mesmo tempo, WebGPU non se basea nunha API gráfica específica, senón que é unha capa universal que usa as mesmas primitivas de baixo nivel que están dispoñibles en Vulkan, Metal e Direct3D.

WebGPU permite que as aplicacións JavaScript controlen a organización, o procesamento e a transmisión de comandos á GPU e xestionen os recursos asociados, a memoria, os búferes, os obxectos de textura e os sombreadores gráficos compilados. Esta estratexia permite un maior rendemento das aplicacións gráficas ao reducir a sobrecarga e aumentar a eficiencia do traballo coa GPU.

Con WebGPU, podes crear proxectos 3D complexos e independentes da plataforma que funcionan tan ben como programas independentes que usan directamente Vulkan, Metal ou Direct3D. WebGPU tamén ofrece capacidades adicionais para portar programas gráficos nativos a un formulario que se pode executar en navegadores, grazas á compilación en WebAssembly.

Características principais de WebGPU e diferenzas con WebGL:

  • Xestión separada de recursos, traballo preparatorio e transmisión de comandos á GPU (en WebGL, un obxecto era responsable de todo á vez). Ofrécense tres contextos separados: GPUDevice para crear recursos como texturas e búfers; GPUCommandEncoder para codificar comandos individuais, incluíndo as fases de renderización e cálculo; GPUCommandBuffer para pasar á cola de execución da GPU. O resultado pódese renderizar nunha área asociada a un ou máis elementos do lenzo, ou renderizarse sen saída (por exemplo, cando se executan tarefas computacionais). A separación de etapas facilita a separación das operacións de creación e aprovisionamento de recursos en diferentes controladores que poden executarse en diferentes fíos.
  • Un enfoque diferente para manexar os estados. WebGPU ofrece dous obxectos: GPURenderPipeline e GPUComputePipeline, que permiten combinar diferentes estados predefinidos polo programador, o que fai posible que o navegador non desperdicie recursos en traballos adicionais, como recompilar sombreadores. Os estados admitidos inclúen: sombreadores, búfer de vértices e deseños de atributos, deseños de grupos adhesivos, mestura, profundidade e patróns, formatos de saída post-renderizado.
  • Un modelo de vinculación, parecido ás ferramentas de agrupación de recursos de Vulkan. Para agrupar os recursos en grupos, a WebGPU proporciona un obxecto GPUBindGroup que, no momento de escribir comandos, pode asociarse con outros obxectos similares para usar en shaders. A creación destes grupos permite que o controlador realice as accións preparatorias necesarias con antelación e permite que o navegador cambie as ligazóns de recursos entre chamadas de sorteo moito máis rápido. O deseño das ligazóns de recursos pódese predefinir mediante o obxecto GPUBindGroupLayout.

Fonte: opennet.ru

Compre hospedaxe fiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra aloxamento web fiable con protección DDoS, servidores VPS VDS | ProHoster