рдореЛрдЬрд╝рд┐рд▓рд╛ рдиреЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рд╡реЗрдмрдЬреАрдкреАрдпреВ рдПрдкреАрдЖрдИ рдФрд░ рдбрдмреНрд▓реНрдпреВрдЬреАрдПрд╕рдПрд▓ (рд╡реЗрдмрдЬреАрдкреАрдпреВ рд╢реЗрдбрд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП Windows 22 рдЬреБрд▓рд╛рдИ рдХреЛ рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ Firefox 141 рдореЗрдВ WebGPU рд╕рдкреЛрд░реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╣реАрдиреЛрдВ рдХреЗ рдмрд┐рд▓реНрдб рдореЗрдВ WebGPU рд╕рдкреЛрд░реНрдЯ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред Linux ╨╕ macOSрдФрд░ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ AndroidWebGPU рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк about:config рдкреЗрдЬ рдкрд░ "dom.webgpu.enabled" рдФрд░ "gfx.webrender.all" рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрд░реЛрдо рдореЗрдВ, рд╡реЗрдмрдЬреАрдкреАрдпреВ рд╕рдкреЛрд░реНрдЯ рдордИ 113 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг 2023 рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдерд╛ред рд╕рдлрд╛рд░реА рдореЗрдВ, рд╡реЗрдмрдЬреАрдкреАрдпреВ рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЗрд╕ рдкрддрдЭрдбрд╝ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ (рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдкреЛрд░реНрдЯ рдирд╡рдВрдмрд░ 2021 рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ)ред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ, рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╡реЗрдмрдЬреАрдкреАрдпреВ рд╕рдкреЛрд░реНрдЯ 2020 рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рдирд╛рдЗрдЯрд▓реА рдмрд┐рд▓реНрдб рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдерд╛ред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХрд╛ рд╡реЗрдмрдЬреАрдкреАрдпреВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди WGPU рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рд░рд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдбрд╛рдпрд░реЗрдХреНрдЯ3рдбреА 12, рд╡рд▓реНрдХрди, рдУрдкрдирдЬреАрдПрд▓ рдФрд░ рдореЗрдЯрд▓ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЪрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
WebGPU, GPU рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Vulkan, Metal рдФрд░ Direct3D 12 рдХреЗ рд╕рдорд╛рди API рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред 3D рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, WebGPU, GPU рдкрд░ рдЧрдгрдирд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╢реЗрдбрд░реНрд╕ рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, WebGPU рдкреБрд░рд╛рдиреЗ WebGL рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рднрд┐рдиреНрди рд╣реИ рдЬрд┐рд╕ рдкреНрд░рдХрд╛рд░ Vulkan рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ API, OpenGL рд╕реЗ рднрд┐рдиреНрди рд╣реИред рд╕рд╛рде рд╣реА, WebGPU рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ API рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкрд░рдд рд╣реИ рдЬреЛ Vulkan, Metal рдФрд░ Direct3D рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рдорд╛рди рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред
рд╡реЗрдмрдЬреАрдкреАрдпреВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ GPU рдХреЛ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рдВрдЧрдарди, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдкреНрд░рд╕рд╛рд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ, рдореЗрдореЛрд░реА, рдмрдлрд╝рд░реНрд╕, рдЯреЗрдХреНрд╕рдЪрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рд╢реЗрдбрд░реНрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдХрд░рдХреЗ рдФрд░ GPU рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рджрдХреНрд╖рддрд╛ рдмрдврд╝рд╛рдХрд░ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред
WebGPU рдХреЗ рд╕рд╛рде, рдЖрдк рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдЕрдЬреНрдЮреЗрдп, рдЬрдЯрд┐рд▓ 3D рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд▓реНрдХрди, рдореЗрдЯрд▓ рдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯ3D рдХрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдЬрд┐рддрдирд╛ рд╣реА рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВред WebGPU, WebAssembly рдореЗрдВ рд╕рдВрдХрд▓рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореВрд▓ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд░реВрдк рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖рдорддрд╛рдПрдБ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╡реЗрдмрдЬреАрдкреАрдпреВ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рд╡реЗрдмрдЬреАрдПрд▓ рд╕реЗ рдЕрдВрддрд░:
- рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЕрд▓рдЧ рдкреНрд░рдмрдВрдзрди, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдФрд░ рдЬреАрдкреАрдпреВ рдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рд╕рд╛рд░рдг (рд╡реЗрдмрдЬреАрдПрд▓ рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдерд╛)ред рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣реИрдВ: рдмрдирд╛рд╡рдЯ рдФрд░ рдмрдлрд╝рд░реНрд╕ рдЬреИрд╕реЗ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП GPUDevice; рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рдЧрдгрдирд╛ рдЪрд░рдгреЛрдВ рд╕рд╣рд┐рдд рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрдорд╛рдВрдб рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GPUCommandEncoder; GPUCommandBuffer рдХреЛ GPU рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░рдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдо рдХреЛ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдВрдкреНрдпреВрдЯ рдХрд╛рд░реНрдп рдЪрд▓рд╛рддреЗ рд╕рдордп)ред рдЪрд░рдгреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдирд┐рд░реНрдорд╛рдг рдФрд░ рддреИрдпрд╛рд░реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереНрд░реЗрдб рдкрд░ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред
- рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдгред WebGPU рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - GPURenderPipeline рдФрд░ GPUComputePipeline, рдЬреЛ рдЖрдкрдХреЛ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрд╡-рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд┐рднрд┐рдиреНрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╢реЗрдбрд░реНрд╕ рдХреЛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ред рд╕рдорд░реНрдерд┐рдд рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рд╢реЗрдбрд░реНрд╕, рд╡рд░реНрдЯреЗрдХреНрд╕ рдмрдлрд░ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓реЗрдЖрдЙрдЯ, рдЪрд┐рдкрдЪрд┐рдкрд╛ рд╕рдореВрд╣ рд▓реЗрдЖрдЙрдЯ, рд╕рдореНрдорд┐рд╢реНрд░рдг, рдЧрд╣рд░рд╛рдИ рдФрд░ рдкреИрдЯрд░реНрди, рдФрд░ рдкреЛрд╕реНрдЯ-рд░реЗрдВрдбрд░ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдкред
- рд╡рд▓реНрдХрди рдХреЗ рд╕рдВрд╕рд╛рдзрди рд╕рдореВрд╣рди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рддрд░рд╣ рдПрдХ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдореЙрдбрд▓ред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, WebGPU рдПрдХ GPUBindGroup рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рд╢реЗрдбрд░реНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдбреНрд░реЙ рдХреЙрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрд╕рд╛рдзрди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рд╕рдВрд╕рд╛рдзрди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рд▓реЗрдЖрдЙрдЯ GPUBindGroupLayout рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрд░реЛрдд: opennet.ru
