ะ
ืืขืจ ืฉืืืกื ืฆืื ืคืื WebGPU ืืื ืฆื ืฆืืฉืืขืื ืึท ืืืืขืจ, ืืึทื ืืฆืขืจ-ืคืจืืึทื ืืืขื, ืคึผืึธืจืืึทืืืื ืืื ืืืื-ืคืึธืจืฉืืขืืื ื ืคึผืจืึธืืจืึทืืืื ื ืฆืืืื ื ืคึฟืึทืจ ืื ืืืขื ืคึผืืึทืืคืึธืจืืข ืฆื ืืขืืืขืจืืืืฉ ืื 3D ืืจืึทืคืืงืก ืืขืงื ืึทืืึทืืืฉืื ืืื ืงืืืคึผืึทืืืืึทืืื ืฆืืืขืฉืืขืื ืืืจื ืืึธืืขืจื ืกืืกืืขื ืืจืึทืคืืงืก ืึทืคึผืืก, ืึทืืึท ืืื Direct3D 12 ืืืืฃ Windows, Metal ืืืืฃ ืืึทืงืึธืก ืืื ืืืืืงืึทื ืืืืฃ ืืื ืืงืก. ืงืึทื ืกืขืคึผืืฉืืึทืื, WebGPU ืืืคืขืจื ืคืื WebGL ืืื ืคืื ืื ืืขืืืข ืืืขื ืืื Vulkan ืืื ืึทื ืืขืจืฉ ืคืื OpenGL, ืืื ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื ืขืก ืืื ื ืืฉื ืืืืืจื ืืืืฃ ืึท ืกืคึผืขืฆืืคืืฉ ืืจืึทืคืืงืก ืึทืคึผื, ืึธืืขืจ ืืื ืึท ืื ืืืืขืจืกืึทื ืฉืืืืข ืืืึธืก ืืืื ื ืืฆื ืื ืืขืืืข ื ืืืขืจืืง-ืืืจืื ืคึผืจืืืืืืืื ืืขืคึฟืื ืขื ืืื Vulkan, ืืขืืึทื ืืื ืืืจืขืงื3ื.
ืืืขืืืคึผื ืคึผืจืึธืืืืืขืก ืืืฉืึทืืืึทืกืงืจืืคึผื ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ื ืืืขืจืืงืขืจ-ืืืจืื ืงืึธื ืืจืึธื ืืืืขืจ ืืขืจ ืึธืจืืึทื ืืืึทืฆืืข, ืคึผืจืึทืกืขืกืื ื ืืื ืืจืึทื ืกืืืกืืข ืคืื โโืงืึทืืึทื ืื ืฆื ืื ืืคึผื, ืึธื ืคืืจืื ื ืคึฟืึทืจืืื ืื ืจืขืกืืจืกื, ืืึผืจืื, ืืึทืคืขืจื, ืืขืืืขื ืึทืืืืฉืขืงืฅ ืืื ืฆืื ืืืคืืขืฉืืขืื ืืจืึทืคืืงืก ืฉืึทืืขืจื. ืืขืจ ืฆืืืึทื ื ืึทืืึทืื ืืืจ ืฆื ืืขืจืืจืืืื ืืขืืขืจ ืคืึธืจืฉืืขืืื ื ืคึฟืึทืจ ืืจืึทืคืืงืก ืึทืคึผืืึทืงืืืฉืึทื ื ืืืจื ืจืืืืกืื ื ืึธืืืืขืจืืขื ืงืึธืก ืืื ืื ืงืจืืกืื ื ืื ืขืคืขืงืืืืืงืืึทื ืคืื ืืจืืขืื ืืื ืื ืืคึผื.
ืืืขืืืคึผื ืืืื ืขืก ืืขืืืขื ืฆื ืฉืึทืคึฟื ืคืื-ืคืืขืืืฉื ืงืึธืืคึผืืขืงืก 3 ื ืคึผืจืึทืืืฉืขืงืก ืคึฟืึทืจ ืื ืืืขื ืืืึธืก ืึทืจืืขื ื ืื ืขืจืืขืจ ืืื ืกืืึทื ืืึทืืึธื ืข ืืืืื ืืืึธืก ืืืืื ืึทืงืกืขืก ืืืืืงืึทื, ืืขืืึทื ืึธืืขืจ ืืืจืขืงื 3 ื, ืึธืืขืจ ืืขื ืขื ื ืืฉื ืืืื ืฆื ืกืคึผืขืฆืืคืืฉ ืคึผืืึทืืคืึธืจืืก. ืืืขืืืคึผื ืืืื ืืื ื ืึธื ืงืืืคึผืึทืืืืึทืืื ืืืขื ืคึผืึธืจืืื ื ืืขืืืืจื ืืจืึทืคืืงืก ืืืืื ืืื ืึท ืืืขื-ืขื ืืืืึทืื ืคืึธืจืขื ืืืจื ืื ื ืืฆื ืคืื ืืืขืืึทืกืกืขืืืื ืืขืื ืึธืืึธืืืข. ืืื ืึทืืืฉืึทื ืฆื 3 ื ืืจืึทืคืืงืก, ืืืขืืืคึผื ืืืื ืงืึธืืืขืจืก ืงืืืคึผืึทืืืืึทืืื ืฉืืึทืืืช ืฆื ืึธืคืืึธืืืื ื ืืฉืืื ืืช ืฆื ืื ืืคึผื ืืื ืฉืืืฆื ืฉืึทืืขืจ ืึทื ืืืืืงืืื ื. ืฉืึทืืขืจืก
ืืืขืืืคึผื ื ืืฆื ืืึทืืื ืืขืจ ืคืึทืจืืืึทืืืื ื ืคืื ืจืขืกืืจืกื, ืคึผืจืืคึผืขืจืึทืืึธืจื ืึทืจืืขื ืืื ืืจืึทื ืกืืืกืืข ืคืื โโืงืึทืืึทื ืื ืฆื ืื ืืคึผื (ืืื ืืืขืืื, ืืืื ืืืืคืขืฅ ืืื ืืขืืืขื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ ืึทืืฅ ืืื ืึทืืึธื). ืืจืื ืืึทืืื ืืขืจ ืงืึทื ืืขืงืกืฅ ืืขื ืขื ืฆืืืขืฉืืขืื:
GPUDevice ืคึฟืึทืจ ืงืจืืืืืื ื ืจืขืกืืจืกื ืึทืืึท ืืื ืืขืงืกืืฉืขืจื ืืื ืืึทืคืขืจื; GPUCommandEncoder ืคึฟืึทืจ ืงืึธืืืจืื ื ืคืื ืืืื ืงืึทืืึทื ืื, ืึทืจืืึทื ืืขืจืขืื ื ืจืขื ืืขืจืื ื ืืื ืงืึทืืคึผืืึทืืืืฉืึทื ืกืืึทืืขืก; GPUCommandBuffer ืฆื ืืืื ืจืื ืคึฟืึทืจ ืืืจืืคืืจืื ื ืืืืฃ ืื ืืคึผื. ืืขืจ ืจืขืืืืืึทื ืงืขื ืขื ืืืื ืจืขื ืืขืจื ืืื ืึท ืืขืื ื ืคึฟืึทืจืืื ืื ืืื ืืืื ืึธืืขืจ ืืขืจ ืืืึทืืื ื ืขืืขืืขื ืื, ืึธืืขืจ ืคึผืจืึทืกืขืกื ืึธื ืจืขืืืืืึทื (ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืขื ืคืืืกื ืืืง ืงืึทืืคึผืืืืื ื ืืึทืกืงืก). ืกืขืคึผืึทืจืืืืื ื ืื ืกืืึทืืขืก ืืืื ืขืก ืืจืื ืืขืจ ืฆื ืฆืขืืืืื ืืืื ืฉืึทืคืื ื ืืื ืฆืืืจืืืืื ื ืึทืคึผืขืจืืืฉืึทื ื ืืื ืคืึทืจืฉืืืขื ืข ืืึทื ืืืขืจืก ืืืึธืก ืงืขื ืขื ืืืืคื ืืืืฃ ืคืึทืจืฉืืืขื ืข ืคึฟืขืืขื.
ืื ืจืืข ืืืืืง ืฆืืืืฉื WebGPU ืืื WebGL ืืื ืึท ืึทื ืืขืจืฉ ืฆืืืึทื ื ืฆื ืืึทื ืืืื ื ืฉืืึทืื. ืืืขืืืคึผื ืึธืคืคืขืจืก ืฆืืืื ืึทืืืืฉืขืงืฅ - GPURenderPipeline ืืื GPUComputePipeline, ืืืึธืก ืืึธืื ืืืจ ืฆื ืคืึทืจืืื ืื ืคืึทืจืฉืืื ืฉืืึทืื ืคืึทืจ-ืืืคืืื ื ืืืจื ืื ืืขืืืขืืึธืคึผืขืจ, ืืืึธืก ืึทืืึทืื ืืขื ืืืขืืขืจืขืจ ืฆื ื ืืฉื ืืืืกื ืจืขืกืืจืกื ืืืืฃ ื ืึธื ืึทืจืืขื, ืึทืืึท ืืื ืจืืงืึธืืคึผืืืืื ื ืฉืึทืืขืจื. ืกืืคึผืคึผืึธืจืืขื ืฉืืึทืื ืึทืจืืึทื ื ืขืืขื: ืฉืึทืืขืจื, ืืืขืจืืขืงืก ืืึทืคืขืจ ืืื ืึทืืจืืืืื ืืืืึทืืฅ, ืงืืขืคึผืืง ืืจืืคึผืข ืืืืึทืืฅ, ืืืขื ืืื ื, ืืืคืงืืึทื ืืื ืคึผืึทืืขืจื ื, ืืื ืคึผืึธืกื-ืคืืจื ืจืขืืืืืึทื ืคึฟืึธืจืืึทืืืจืื ืืขื.
ืื ืืจืื ืฉืืจืื ืคืื ืืืขืืืคึผื ืืื ืืขืจืืคึฟื ืื ืืืื ืืื ื ืืึธืืขื, ืืึทืจืืขืื
ืจืขืืึทื ืืกืึทื ื ืคืื ืื ืืืื ืืจืืคึผืื ื ืืืฉืืจืื ืคืึธืจืฉืืขืื ืืื ืืืืืงืึทื.
ืฆื ืืจืืคึผืข ืจืขืกืืจืกื ืฆืืืึทืืขื, WebGPU ืืื ืึท GPUBindGroup ืืืืคืขืฅ, ืืืึธืก ืงืขื ืขื ืืืื ืคืืจืืื ืื ืืื ืื ืืขืจืข ืขื ืืขื ืึทืืืืฉืขืงืฅ ืคึฟืึทืจ ื ืืฆื ืืื ืฉืึทืืขืจื ืืฉืขืช ืฉืจืืืื ืงืึทืืึทื ืื. ืฉืืคื ืึทืืึท ืืจืืคึผืขืก ืึทืืึทืื ืื ืฉืึธืคืขืจ ืฆื ืืืจืืคืืจื ืื ื ืืืืืง ืคึผืจืืคึผืขืจืึทืืึธืจื ืึทืงืฉืึทื ื ืืื ืฉืืืึทืื, ืืื ืึทืืึทืื ืืขื ืืืขืืขืจืขืจ ืฆื ืืืืฉื ืืืื ืืืื ืืื ืื ืฆืืืืฉื ืฆืืขื ืจืืคื ืคืื ืคืึทืกืืขืจ. ืืขืจ ืืืืกืืืื ืคืื ืืืื ืืืื ืืื ืื ืงืขื ืขื ืืืื ืคึผืจืขืืขืคืื ืขื ืืื ืื GPUBindGroupLayout ืืืืคืขืฅ.
ืืื ืคืืจืขืคืึธืงืก, ืฆื ืืขืื ืืืขืืืคึผื ืืื ืืืขืื: ืงืึธื ืคืื, ืขืก ืืื ืึท ืืึทืฉืืขืืืงื "dom.webgpu.enabled". ืงืึทื ืืืึทืกืงืึธื ืืขืงืกื ืจืขื ืืขืจืื ื ืืืื ืจืืงืืืืืขืจื ืงืึธืืคึผืึธืกืืืื ื ืฆื ืืืื ืขื ืืืืึทืื
ืืงืืจ: opennet.ru