ื-W3C ืฉืืจืจ ืืช ืืืืืืืช ืืจืืฉืื ืืช ืฉื ืืคืจืื WebGPU ื-WebGPU Shading Language (WGSL), ืืืืืืจืื ืืืฉืงื API ืืืืฆืืข ืคืขืืืืช GPU ืืื ืจืื ืืืจ ืืืืฉืื, ืืื ืื ืฉืคืช ืืฆืืื ืืืชืืืช ืชืืื ืืืช ืืคืืขืืืช ืขื ื-GPU. ืืืื ืืืืื ื ืจืขืืื ืืช ื-Vulkan, Metal ื-Direct3D 12 ืืืคืจืืื ืืืื ื ืขื ืืื ืงืืืฆืช ืขืืืื ืฉืืืื ืืื ืืกืื ื-Mozilla, Google, Apple ื-Microsoft.
ืืืืื ื ืงืื ืกืคืืืืืืช, WebGPU ืฉืื ื ื-WebGL ืืืืชื ืืืื ืฉืื ืฉืื ื ื-API ืืืจืคื ืฉื Vulkan ื-OpenGL, ืื ืืื ืืื ื ืืืืกืก ืขื ืืืฉืง API ืืจืคื ืกืคืฆืืคื, ืืื ืืื ืฉืืื ืืื ืืืจืกืืืช ืืืฉืชืืฉืช ืืืืชื ืคืจืืืืืืืื ืืจืื ื ืืืื ืืืฆืืืื ื-Vulkan, Metal ื- ืืฉืืจ 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