ืืืื ืืืืืขื ืขื ืืืืืช ืชืืืืช ืืจืืจืช ืืืื ืขืืืจ ื-API ืืืจืคื ืฉื WebGPU ื-WGSL (ืฉืคืช ืืฆืืื ืฉื WebGPU) ื-Chrome 113, ืฉืืชืืื ื ืืฆืืช ื-2 ืืืื. WebGPU ืืกืคืง ืืืฉืง ืชืื ืืช ืืืื ื-Vulkan, Metal ื-Direct3D 12 ืืืืฆืืข ืคืขืืืืช ืืฆื ื-GPU ืืื ืขืืืื ืืืืฉืื, ืืื ืืืคืฉืจ ืฉืืืืฉ ืืฉืคืช ืืฆืืื ืืืชืืืช ืชืืื ืืืช ืืคืืขืืืช ืืฆื ื-GPU. ืืืฉืื ื-WebGPU ืืืคืขื ืืชืืืื ืจืง ื-ChromeOS, macOS ื-Windows. ืขืืืจ ืืื ืืงืก ืืื ืืจืืืื, ืชืืืืช WebGPU ืชืืคืขื ืืืืขื ืืืืืจ ืืืชืจ.
ืื ืืกืฃ ื-Chrome, ืชืืืื ื ืืกืืื ืืช ื-WebGPU ื ืืืงื ืืื ืืคืจืื 2020 ื-Firefox ืืืื ื ืืืืืจ 2021 ื-Safari. ืืื ืืืคืขืื WebGPU ื-Firefox, ืขืืื ืืืืืืจ ืืช ืืืืืื dom.webgpu.enabled ื-gfx.webgpu.force-enabled ื- about:config. ืืื ืขืืืื ืชืืื ืืืช ืืืคืขืื ืืช WebGPU ืืืจืืจืช ืืืื ืืคืืืจืคืืงืก ืืืกืคืืจื. ืืืฉืืื WebGPU ืฉืคืืชืื ืขืืืจ Firefox ืืืจืื ืืืื ืื ืืฆืืจื ืฉื ืกืคืจืืืช ื ืคืจืืืช - Dawn (C++) ื-wgpu (Rust), ืฉืืื ืืชื ืืืื ืืืฉืชืืฉ ืืื ืืฉืื ืชืืืื ื-WebGPU ืืืคืืืงืฆืืืช ืฉืื. ืืื ืื, ืืชืืฆืขืช ืขืืืื ืืืืกืคืช ืชืืืืช WebGPU ืืกืคืจืืืช JavaScript ืคืืคืืืจืืืช ืืืฉืชืืฉืืช ื-WebGL ืืืืคื ืืงืืจื. ืืืืืื, ืชืืืื ืืืื ื-WebGPU ืืืจ ืืืืจืื ื-Babylon.js, ืืชืืืื ืืืงืืช ื-Three.js, PlayCanvas ื-TensorFlow.js.
ืืืืื ื ืงืื ืกืคืืืืืืช, WebGPU ืฉืื ื ื-WebGL ืืืืชื ืืืื ืฉื-API ืืืจืคื ืฉื Vulkan ืฉืื ื ื-OpenGL, ืื WebGPU ืืื ื ืืืืกืก ืขื ืืืฉืง API ืืจืคื ืกืคืฆืืคื, ืืื ืืื ืฉืืื ืืื ืืืจืกืืืช ืืืฉืชืืฉืช ืืืืชื ืคืจืืืืืืืื ืืจืื ื ืืืื ืฉื ืืฆืืช ืืืืืงื, ืืชืืช ื ืืฉืืจ 3D. WebGPU ืืกืคืงืช ืืืืฉืืื JavaScript ืขื ืฉืืืื ืืจืื ื ืืืื ืขื ืืืจืืื, ืขืืืื ืืฉืืืืจ ืฉื ืคืงืืืืช ื-GPU, ื ืืืื ืืฉืืืื ืืฉืืืืื, ืืืืจืื, ืืืืจืื, ืืืืืืงืื ืืงืกืืืจื ืืืฆืืืืช ืืจืคืืงื ืืืืืจ. ืืืฉื ืื ืืืคืฉืจืช ืื ืืืฉืื ืืืฆืืขืื ืืืืืื ืืืชืจ ืขืืืจ ืืืฉืืื ืืจืคืืงื ืขื ืืื ืืคืืชืช ืขืืืืืช ืืชืงืืจื ืืืืืจืช ืืขืืืืช ืืขืืืื ืขื ื-GPU.
WebGPU ืืืคืฉืจ ืืืฆืืจ ืคืจืืืงืืื ืชืืช ืืืืืืื ืืืจืืืื ืขืืืจ ืืืื ืืจื ื ืฉืืืฆืืขืืื ืืื ื ืืจืืขืื ืืืชืจ ืืชืืื ืืช ืขืฆืืืืืช ืืืฉืชืืฉืืช ืืฉืืจืืช ืืืืืงื, ืืชืืช ืื Direct3D, ืื ืืื ื ืงืฉืืจืืช ืืคืืืคืืจืืืช ืกืคืฆืืคืืืช. WebGPU ืืกืคืง ืื ืืืืืืช ื ืืกืคืืช ืืืขืืจืช ืชืืื ืืืช ืืจืคืืงื ืืงืืจืืืช ืืืืคืก ืืืืชืื ืืืื ืืจื ื ืืืืฆืขืืช ืงืืืคืืืฆืื ืืชืื WebAssembly. ืื ืืกืฃ ืืืจืคืืงื ืชืืช ืืืืืืช, WebGPU ืืืื ืื ืืืืืืช ืืงืฉืืจืืช ืืืืจืืช ืืืฉืืืื ื-GPU ืืืืฆืืข ืืฆืืืืช.
ืชืืื ืืช ืขืืงืจืืืช ืฉื WebGPU:
- ื ืืืื ื ืคืจื ืฉื ืืฉืืืื, ืขืืืืช ืืื ื ืืืขืืจืช ืคืงืืืืช ื-GPU (ื-WebGL ืืืืืืงื ืืื ืืื ืืืจืื ืขื ืืื ืืืช ืืืช). ืฉืืืฉื ืืงืฉืจืื ื ืคืจืืื ืืกืืคืงืื: GPUDevice ืืืฆืืจืช ืืฉืืืื ืืืื ืืจืงืืื ืืืืืจืื; GPUCommandEncoder ืืงืืืื ืคืงืืืืช ืืืืืืช, ืืืื ืฉืืื ืจืื ืืืจ ืืืืฉืื; GPUCommandBuffer ืฉืืขืืื ืืชืืจ ืืืืฆืืข ื-GPU. ื ืืชื ืืืฆืื ืืช ืืชืืฆืื ืืืืืจ ืืืฉืืื ืืืืื ื ืืื ืื ืืืชืจ ืฉื ืงื ืืก, ืื ืืขืื ืืื ืคืื (ืืืืืื, ืืขืช ืืคืขืืช ืืฉืืืืช ืืืฉืื). ืืคืจืืช ืืฉืืืื ืืงืื ืขื ืืคืจืืช ืคืขืืืืช ืืฆืืจืช ืืฉืืืื ืืืื ื ืืืืคืืื ืฉืื ืื ืฉืืืืืื ืืคืขืื ืขื ืฉืจืฉืืจืื ืฉืื ืื.
- ืืืฉื ืฉืื ื ืืขืืืื ืืฆืืื. WebGPU ืืฆืืข ืฉื ื ืืืืืืงืืื - GPURenderPipeline ื-GPUComputePipeline, ืืืืคืฉืจืื ืืฉืื ืืฆืืื ืฉืื ืื ืฉืืืืืจื ืืจืืฉ ืขื ืืื ืืืคืชื, ืื ืฉืืืคืฉืจ ืืืคืืคื ืื ืืืืื ืืฉืืืื ืขื ืขืืืื ื ืืกืคืช, ืืื ืืืืืจ ืืืืฉ ืฉื ืืฆืืืืช. ืืืฆืืื ืื ืชืืืื ืืืืืื: ืืฆืืืืช, ืคืจืืกืืช ืืืฅ ืงืืืงืื ืืชืืื ื, ืคืจืืกืืช ืงืืืฆืืช ืืืืงืืช, ืืืืื, ืขืืืง ืืชืื ืืืช ืืชืื ืืืช ืคืื ืืืืจ ืจืื ืืืจ.
- ืืืื ืืืืื ืืืืื ืืชืืื ืืช ืงืืืืฅ ืืืฉืืืื ืฉื Vulkan. ืืื ืืงืืฅ ืืฉืืืื ืืืืื, WebGPU ืืกืคืง ืืืืืืงื GPUBindGroup, ืฉื ืืชื ืืฉืืื ืืืืืืืงืืื ืืืืื ืืืจืื ืืฉืืืืฉ ืืืฆืืืืช ืืืื ืืชืืืช ืคืงืืืืช. ืืฆืืจืช ืงืืืฆืืช ืืืื ืืืคืฉืจืช ืื ืื ืืืฆืข ืืช ืคืขืืืืช ืืืื ื ืืืจืืฉืืช ืืจืืฉ, ืืืืคืฉืจืช ืืืคืืคื ืืฉื ืืช ืืจืืืืช ืืฉืืืื ืืื ืงืจืืืืช ืืฆืืืจ ืืจืื ืืืชืจ ืืืจ. ื ืืชื ืืืืืืจ ืืจืืฉ ืืช ืืคืจืืกื ืฉื ืืจืืืืช ืืฉืืืื ืืืืฆืขืืช ืืืืืืืงื GPUBindGroupLayout.
ืืงืืจ: OpenNet.ru