Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

View in English Always switch to English

GPU

Disponibilidad limitada

Esta característica no es Baseline porque no funciona en algunos de los navegadores más usados.

¿Quieres que más navegadores sean compatibles con esta característica? Cuéntanos por qué.

Contexto seguro: Esta función está disponible solo en contextos seguros (HTTPS), en algunos o todos los navegadores que lo soportan.

Nota: Esta característica está disponible en Web Workers.

La interfaz GPU de la API de WebGPU es el punto de entrada para usar WebGPU. Se puede usar para devolver un GPUAdapter desde el cual puedes solicitar dispositivos, configurar características, límites y más.

El objeto GPU para el contexto actual se accede mediante las propiedades Navigator.gpu o WorkerNavigator.gpu.

Propiedades de la instancia

wgslLanguageFeatures Read only

Un objeto WGSLLanguageFeatures que reporta las extensiones del lenguaje WGSL soportadas por la implementación de WebGPU.

Métodos de la instancia

requestAdapter()

Devuelve una Promise que se resuelve con una instancia del objeto GPUAdapter. Desde aquí puedes solicitar un GPUDevice, que es la interfaz principal para usar la funcionalidad de WebGPU.

getPreferredCanvasFormat()

Devuelve el formato óptimo de textura para el canvas para renderizar contenido de 8 bits y rango dinámico estándar en el sistema actual.

Ejemplos

Solicitar un adaptador y un dispositivo

js
async function init() {
  if (!navigator.gpu) {
    throw Error("WebGPU no está soportado.");
  }

  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) {
    throw Error("No se pudo solicitar un adaptador de WebGPU.");
  }

  const device = await adapter.requestDevice();

  // …
}

Configurar un GPUCanvasContext con el formato de textura óptimo

js
const canvas = document.querySelector("#gpuCanvas");
const context = canvas.getContext("webgpu");

context.configure({
  device,
  format: navigator.gpu.getPreferredCanvasFormat(),
  alphaMode: "premultiplied",
});

Especificaciones

Especificación
WebGPU
# gpu-interface

Compatibilidad con navegadores

Véase también