W3C ืึทื ื•ื•ื™ื™ืœื“ ืคึผืœืึทืŸ ื•ื•ืขื‘ื’ืคึผื• ื ืึธืจืžืึทืœ

ื“ื™ 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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’