W3C ื—ื•ืฉืคืช ื˜ื™ื•ื˜ืช ืชืงืŸ WebGPU

ื”-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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”