ืื W3C ืืื ืืืคืจืืื ืื ืขืจืฉืืขืจ ืืจืึทืคืฅ ืคืื ืื WebGPU ืืื WebGPU Shading Language (WGSL) ืกืคึผืขืกืึทืคืึทืงืืืฉืึทื ื, ืืืึธืก ืืขืคืื ืืจื ืึทืคึผืืก ืคึฟืึทืจ ืคึผืขืจืคืึธืจืืื ื ืืคึผื ืึทืคึผืขืจืืืฉืึทื ื ืึทืืึท ืืื ืจืขื ืืขืจืื ื ืืื ืงืึทืืคึผืืืืื ื, ืืื ืืขืืื ื ืืื ืึท ืฉืึทืืขืจ ืฉืคึผืจืึทื ืคึฟืึทืจ ืฉืจืืืื ืืืืื ืืืึธืก ืืืืคื ืืืืฃ ืื ืืคึผื. ืงืึทื ืกืขืคึผืืฉืืึทืื ืขื ืืขื ืฆื ืื Vulkan, Metal ืืื Direct3D 12 APIs.
ืงืึทื ืกืขืคึผืืฉืืึทืื, WebGPU ืืืคืขืจื ืคืื ืืืขืืื ืืื ืคืื ืื ืืขืืืข ืืืขื ืืื ืื Vulkan graphics API ืืื ืึทื ืืขืจืฉ ืคืื OpenGL, ืึธืืขืจ ืขืก ืืื ื ืืฉื ืืืืืจื ืืืืฃ ืึท ืกืคึผืขืฆืืคืืฉ ืืจืึทืคืืงืก ืึทืคึผื, ืึธืืขืจ ืืื ืึท ืื ืืืืขืจืกืึทื ืฉืืืืข ืืืึธืก ื ืืฆื ืื ืืขืืืข ื ืืืขืจืืง-ืืืจืื ืคึผืจืืืืืืืื ืืขืคึฟืื ืขื ืืื ืืืืืงืึทื, ืืขืืึทื ืืื ืืืจืขืงื3ื. ืืืขืืืคึผื ืืื ืืืฉืึทืืืึทืกืงืจืืคึผื ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ื ืืืขืจืืง-ืืืจืื ืงืึธื ืืจืึธื ืืืืขืจ ืืขืจ ืึธืจืืึทื ืืืึทืฆืืข, ืคึผืจืึทืกืขืกืื ื ืืื ืืจืึทื ืกืืืกืืข ืคืื โโืงืึทืืึทื ืื ืฆื ืื ืืคึผื, ืึธื ืคืืจืื ื ืคึฟืึทืจืืื ืื ืจืขืกืืจืกื, ืืึผืจืื, ืืึทืคืขืจื, ืืขืืืขื ืึทืืืืฉืขืงืฅ ืืื ืฆืื ืืืคืืขืฉืืขืื ืืจืึทืคืืงืก ืฉืึทืืขืจื. ืืขืจ ืฆืืืึทื ื ืึทืืึทืื ืืืจ ืฆื ืืขืจืืจืืืื ืืขืืขืจ ืคืึธืจืฉืืขืืื ื ืคึฟืึทืจ ืืจืึทืคืืงืก ืึทืคึผืืึทืงืืืฉืึทื ื ืืืจื ืจืืืืกืื ื ืึธืืืืขืจืืขื ืงืึธืก ืืื ืื ืงืจืืกืื ื ืื ืขืคืขืงืืืืืงืืึทื ืคืื ืืจืืขืื ืืื ืื ืืคึผื.
ืืืขืืืคึผื ืืืื ืขืก ืืขืืืขื ืฆื ืฉืึทืคึฟื ืงืึธืืคึผืืขืงืก 3 ื ืคึผืจืึทืืืฉืขืงืก ืคึฟืึทืจ ืื ืืืขื ืืืึธืก ืึทืจืืขื ื ืื ืขืจืืขืจ ืืื ืกืืึทื ืืึทืืึธื ืข ืืืืื ืืืึธืก ืืืืื ืึทืงืกืขืก ืืืืืงืึทื, ืืขืืึทื ืึธืืขืจ ืืืจืขืงื 3 ื, ืึธืืขืจ ืืขื ืขื ื ืืฉื ืืืื ืฆื ืกืคึผืขืฆืืคืืฉ ืคึผืืึทืืคืึธืจืืก. ืืืขืืืคึผื ืืืื ืืื ื ืึธื ืงืืืคึผืึทืืืืึทืืื ืคึฟืึทืจ ืคึผืึธืจืืื ื ืืขืืืืจื ืืจืึทืคืืงืก ืืืืื ืืื ืึท ืืืขื-ืขื ืืืืึทืื ืคืึธืจืขื ืืืจื ืืึทืืืื ื ืืื ืืืขื ืึทืกืขืืืื. ืืื ืึทืืืฉืึทื ืฆื 3 ื ืืจืึทืคืืงืก, ืืืขืืืคึผื ืืืื ืืืื ืงืืืคึผืึทืืืืึทืืื ืฉืืึทืืืช ืฆื ืึธืคืืึธืืืื ื ืืฉืืื ืืช ืฆื ืื ืืคึผื ืืื ืขืงืกืึทืงืืืืื ื ืฉืึทืืขืจื.
ืฉืืืกื ืคึฟืขืึดืงืืืื ืคืื WebGPU:
- ืืึทืืื ืืขืจ ืคืึทืจืืืึทืืืื ื ืคืื ืจืขืกืืจืกื, ืคึผืจืืคึผืขืจืึทืืึธืจื ืึทืจืืขื ืืื ืืจืึทื ืกืืืกืืข ืคืื โโืงืึทืืึทื ืื ืฆื ืื ืืคึผื (ืืื ืืืขืืื ืืืื ืืืืคืขืฅ ืืื ืืขืืืขื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ ืึทืืฅ ืืื ืึทืืึธื). ืืจืื ืืึทืืื ืืขืจ ืงืึทื ืืขืงืกืฅ ืืขื ืขื ืฆืืืขืฉืืขืื: GPUDevice ืคึฟืึทืจ ืงืจืืืืืื ื ืจืขืกืืจืกื ืึทืืึท ืืื ืืขืงืกืืฉืขืจื ืืื ืืึทืคืขืจื; GPUCommandEncoder ืคึฟืึทืจ ืงืึธืืืจืื ื ืคืื ืืืื ืงืึทืืึทื ืื, ืึทืจืืึทื ืืขืจืขืื ื ืจืขื ืืขืจืื ื ืืื ืงืึทืืคึผืืึทืืืืฉืึทื ืกืืึทืืขืก; GPUCommandBuffer ืฆื ืืืื ืจืืืืืื ืคึฟืึทืจ ืืืจืืคืืจืื ื ืืืืฃ ืื ืืคึผื. ืืขืจ ืจืขืืืืืึทื ืงืขื ืขื ืืืื ืจืขื ืืขืจื ืืื ืึท ืืขืื ื ืคึฟืึทืจืืื ืื ืืื ืืืื ืึธืืขืจ ืืขืจ ืืืึทืืื ื ืขืืขืืขื ืื, ืึธืืขืจ ืคึผืจืึทืกืขืกื ืึธื ืจืขืืืืืึทื (ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืขื ืคืืืกื ืืืง ืงืึทืืคึผืืืืื ื ืืึทืกืงืก). ืกืขืคึผืึทืจืืืืื ื ืื ืกืืึทืืขืก ืืืื ืขืก ืืจืื ืืขืจ ืฆื ืฆืขืืืืื ืืืื ืฉืึทืคืื ื ืืื ืฆืืืจืืืืื ื ืึทืคึผืขืจืืืฉืึทื ื ืืื ืคืึทืจืฉืืืขื ืข ืืึทื ืืืขืจืก ืืืึธืก ืงืขื ืขื ืืืืคื ืืืืฃ ืคืึทืจืฉืืืขื ืข ืคึฟืขืืขื.
- ื ืึทื ืืขืจืฉ ืฆืืืึทื ื ืฆื ืคึผืจืึทืกืขืกืื ื ืฉืืึทืื. ืืืขืืืคึผื ืึธืคืคืขืจืก ืฆืืืื ืึทืืืืฉืขืงืฅ - GPURenderPipeline ืืื GPUComputePipeline, ืืืึธืก ืืึธืื ืืืจ ืฆื ืคืึทืจืืื ืื ืคืึทืจืฉืืื ืฉืืึทืื ืคืึทืจ-ืืืคืืื ื ืืืจื ืื ืืขืืืขืืึธืคึผืขืจ, ืืืึธืก ืึทืืึทืื ืืขื ืืืขืืขืจืขืจ ืฆื ื ืืฉื ืืืืกื ืจืขืกืืจืกื ืืืืฃ ื ืึธื ืึทืจืืขื, ืึทืืึท ืืื ืจืืงืึธืืคึผืืืืื ื ืฉืึทืืขืจื. ืกืืคึผืคึผืึธืจืืขื ืฉืืึทืื ืึทืจืืึทื ื ืขืืขื: ืฉืึทืืขืจื, ืืืขืจืืขืงืก ืืึทืคืขืจ ืืื ืึทืืจืืืืื ืืืืึทืืฅ, ืงืืขืคึผืืง ืืจืืคึผืข ืืืืึทืืฅ, ืืืขื ืืื ื, ืืืคืงืืึทื ืืื ืคึผืึทืืขืจื ื, ืืื ืคึผืึธืกื-ืคืืจื ืจืขืืืืืึทื ืคึฟืึธืจืืึทืืืจืื ืืขื.
- ื ืืืื ืืื ื ืืึธืืขื ืคืื ืืื Vulkan ืก ืืืื ืืจืืคึผืื ื ืคึฟืขืึดืงืืืื. ืฆื ืืจืืคึผืข ืจืขืกืืจืกื ืฆืืืึทืืขื, WebGPU ืืื ืึท GPUBindGroup ืืืืคืขืฅ, ืืืึธืก ืงืขื ืขื ืืืื ืคืืจืืื ืื ืืื ืื ืืขืจืข ืขื ืืขื ืึทืืืืฉืขืงืฅ ืคึฟืึทืจ ื ืืฆื ืืื ืฉืึทืืขืจื ืืฉืขืช ืฉืจืืืื ืงืึทืืึทื ืื. ืฉืืคื ืึทืืึท ืืจืืคึผืขืก ืึทืืึทืื ืื ืฉืึธืคืขืจ ืฆื ืืืจืืคืืจื ืื ื ืืืืืง ืคึผืจืืคึผืขืจืึทืืึธืจื ืึทืงืฉืึทื ื ืืื ืฉืืืึทืื, ืืื ืึทืืึทืื ืืขื ืืืขืืขืจืขืจ ืฆื ืืืืฉื ืืืื ืืืื ืืื ืื ืฆืืืืฉื ืฆืืขื ืจืืคื ืคืื ืคืึทืกืืขืจ. ืืขืจ ืืืืกืืืื ืคืื ืืืื ืืืื ืืื ืื ืงืขื ืขื ืืืื ืคึผืจืขืืขืคืื ืขื ืืื ืื GPUBindGroupLayout ืืืืคืขืฅ.
ืืงืืจ: opennet.ru