Ð
WebGPU á á¡ááááááºááŸááºážáá»ááºááŸá¬ Direct3D 3 áá²á·ááá¯á·áá±á¬ Windows ááœáẠDirect12D 3 áá²á·ááá¯á·áá±á¬ Metal áá²á·ááá¯á·áá±á¬ áá±ááºáá®á áá áºááááºáá áºáááºážááá¬áá»á¬ážááŸáá·áº á áœááºážáá±á¬ááºáááºáá»á¬ážááᯠááŒáŸáá·áºáááºáááºá¡ááœáẠáááºááááºáá±á¬ááºážá¡ááœáẠáá¯á¶ááŒá¯á¶áá±á¬á á¡áá¯á¶ážááŒá¯áááœááºáá°áá±á¬á áááºáá±á¬ááºáááœááºáá°ááŒá®áž á áœááºážáá±á¬ááºáááºááŒáá·áº áááá¯ááááºážáááºážáá¯á¶ážá¡ááºáá¬áá±á·á áºááᯠáá±ážáá±á¬ááºáááºááŒá áºáááºá macOS ááŸáá·áº Linux ááœáẠVulkan ááá¯á·á ááá±á¬ááá¬ážá¡áá WebGPU ááẠVulkan ááŸáá·áº OpenGL ááá°ááá·áºáá¯á¶á á¶á¡ááá¯ááºáž WebGPU ááŸáá·áº áá»á¬ážá áœá¬ááœá¬ááŒá¬ážááŒá®áž áá áºáá»áááºáááºážááŸá¬ááẠáááºážááẠáá®ážááŒá¬ážááááºáá ẠAPI ááá¯á¡ááŒá±áá¶áá¬ážááŒááºážááá¯ááºáá±á¬áºáááºáž Vulkan ááœááºááœá±á·ááá±á¬ áá°áá®áá±á¬á¡ááá·áºáááá·áº primitives áá»á¬ážááᯠáá±áá°áá»á¡á¬ážááŒáá·áº á¡áá¯á¶ážááŒá¯ááá·áº universal layer áá áºáá¯ááŒá áºáááºá ááá¹áá¯ááŸáá·áº DirectXNUMXDá
WebGPU ááẠá¡ááœá²á·á¡á ááºážá áá¯ááºáá±á¬ááºááŸá¯ááŸáá·áº GPU ááá¯á· á¡áááá·áºáá±ážáá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááŒááºážá áááºá ááºá¡áááºážá¡ááŒá áºáá»á¬ážá ááŸááºáá¬ááºá ááŒá¬ážáá¶áá»á¬ážá á¡ááœááºá¡ááŒááºá¡áá¬ááá¹áá¯áá»á¬ážááŸáá·áº á á¯á ááºážáá¬ážáá±á¬ ááááºáá áºá¡ááááºá¡á¬áá«ááá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááŒááºážááá¯á·ááᯠWebGPU á០JavaScript á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá á€áá»ááºážáááºááŸá¯ááẠááá·áºá¡á¬áž áá¯ááºáá»á ááááºáááºáá¬ááŒá®áž GPU ááŸáá·áº á¡áá¯ááºáá¯ááºááŒááºážá á áœááºážáá±á¬ááºáááºááᯠááá¯ážááŒáŸáá·áºááŒááºážááŒáá·áº ááááºáá áºá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬á áœááºážáá±á¬ááºáááºááᯠáááŸáá á±áááºááŒá áºáááºá
WebGPU ááẠVulkaná Metal ááá¯á·ááá¯áẠDirect3D ááá¯á· ááá¯ááºááá¯ááºáááºáá±á¬ááºááá·áº áá®ážááŒá¬ážááááºáá±á¬ááºážáá»á¬ážááŸáá·áº ááááºááá¯ááºááá·áº áá®ážááŒá¬ážáááá¯ááááºáá»á¬ážááẠááá¯ááá¯ááá¯ážááœá¬ážááŒááºážáááŸááá±á¬ áááºá¡ááœáẠááŒáá·áºá
á¯á¶ááŸá¯ááºááœá±ážáá±á¬ 3D ááá±á¬áá»ááºáá»á¬ážááᯠáááºáá®ážááẠááŒá
áºááá¯ááºáá»á±ááŸááááºá WebGPU ááẠWebAssembly áááºážááá¬ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áá¬ááááááºáá
áºáááá¯ááááºáá»á¬ážááᯠweb-enabled form ááá¯á· ááá¯á·ááá·áºá¡áá«ááœáẠáááºáá±á¬ááºážá
áœááºážáá±á¬ááºáááºáá»á¬ážááᯠáá±ážáá«áááºá 3D ááááºáá
áºá¡ááŒááºá WebGPU ááẠGPU ááá¯á· ááœááºáá»ááºááŸá¯áá»á¬ážááᯠáááºááŸá¬ážááŒááºážááŸáá·áº shader ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠáá¶á·ááá¯ážáá±ážááŒááºážááá¯á·ááŸáá·áº áááºááá¯ááºááá·áº á
áœááºážáááºáá»á¬ážááá¯áááºáž á¡áá»á¯á¶ážáááºáá«áááºá á¡ááááºáá»á¬áž
WebGPU ááẠáá®ážááŒá¬ážá¡áááºážá¡ááŒá
áºáá»á¬ážááᯠá
á®áá¶ááá·áºááœá²ááŒááºážá ááŒááºáááºááŒááºážáá¯ááºáááºážááŸáá·áº GPU ááá¯á· á¡áááá·áºáá»á¬ážáá±ážááá¯á·ááŒááºážááá¯á·ááᯠá¡áá¯á¶ážááŒá¯ááẠ(WebGL ááœáẠá¡áá¬ááá¹áá¯áá
áºáá¯ááẠá¡áá¬á¡á¬ážáá¯á¶ážá¡ááœáẠáá
áºáá»áááºáááºážááœáẠáá¬áááºááŸááááº)á áá®ážááŒá¬ážá¡ááŒá±á¬ááºážá¡áá¬áá¯á¶ážáá¯ááᯠáá±ážáá¬ážáááºá
áá¯á¶ááá¹áá¬ááºáá»á¬ážááŸáá·áº ááŒá¬ážáá¶áá»á¬ážáá²á·ááá¯á·áá±á¬ á¡áááºážá¡ááŒá
áºáá»á¬ážááᯠáááºáá®ážáááºá¡ááœáẠGPUDeviceá áááºáááºááŒááºážááŸáá·áº ááœááºáá»ááºááŒááºáž á¡ááá·áºáá»á¬ážá¡áá«á¡ááẠáá
áºáŠážáá»ááºáž ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáá¯ááºááŒá±á¬ááºážáááºá¡ááœáẠGPUCommandEncoderá GPUCommandBuffer ááẠGPU áá±á«áºááœáẠáá¯ááºáá±á¬ááºááẠáááºážá
á®áá±áá«áááºá ááááºááᯠáá
áºáᯠááá¯á·ááá¯áẠáá
áºáá¯áááºááá¯áá±á¬ áááºážáááºááŒááºá
ááºáá»á¬ážááŸáá·áº áááºá
ááºáá±ááá·áº á§áááá¬ááœáẠááŒááºááá¯ááá¯ááºáááºá ááá¯á·ááá¯áẠá¡ááœááºáááŸááá² áá¯ááºáá±á¬ááºáá±ááẠ(á¥ááá¬á ááœááºáá»ááºááŸá¯áá¯ááºáá±á¬ááºáá±áá»áááºááœááº)á á¡ááá·áºáá»á¬ážááᯠááá¯ááºážááŒá¬ážááŒááºážááŒáá·áº á¡áááºážá¡ááŒá
áºáááºáá®ážááŒááºážááŸáá·áº ááŒááºáááºááŒááºážáá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááᯠááá°áá®áá±á¬ thread áá»á¬ážááœáẠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ ááá°áá®áá±á¬ ááá¯ááºááœááºááŒá±ááŸááºážáá°áá»á¬ážá¡ááŒá
Ạááœá²ááŒá¬ážááẠááá¯ááá¯ááœááºáá°á
á±áááºá
WebGPU ááŸáá·áº WebGL á¡ááŒá¬áž áá¯áááááœá¬ááŒá¬ážáá»ááºááŸá¬ ááŒááºáááºáá»á¬ážááᯠááá¯ááºááœááºááẠááá°áá®áá±á¬ áá»ááºážáááºááŸá¯áá áºáá¯ááŒá áºáááºá WebGPU ááẠá¡áá¬ááá¹áá¯ááŸá áºáá¯ááᯠáá¶á·ááá¯ážáá±ážááẠ- GPURenderPipeline ááŸáá·áº GPUComputePipeline ááẠáá±á¬á·ááºáá²áá±ážáá¬ážáá°á០ááŒáá¯áááºáááºááŸááºáá¬ážáá±á¬ ááŒááºáááºá¡áá»áá¯ážáá»áá¯ážááᯠáá±á«ááºážá ááºááá¯ááºá á±áá¬á áááºážááẠbrowser á¡á¬áž ááŒááºáááºáá±á«ááºážá ááºážááŒááºážáá²á·ááá¯á·áá±á¬ áá±á¬ááºáááºááœá²á¡áá¯ááºáá»á¬ážááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááŒá¯ááºážáá®ážááŒááºážáááŒá¯ááẠááœáá·áºááŒá¯ááá·áºá¡áá¬ááŒá áºáááºá áá¶á·ááá¯ážáá±ážáá¬ážáá±á¬ ááŒááºáááºáá»á¬áž ááœááº- shadersá vertex ááŒá¬ážáá¶ááŸáá·áº áááºááœáŸááºážáá»áẠá¡ááŒááºá¡áááºáá»á¬ážá á á±ážáááºáá±á¬ á¡á¯ááºá ᯠá¡ááŒááºá¡áááºáá»á¬ážá áá±á¬á ááºááŒááºážá á¡áááºááŸáá·áº áá¯á¶á á¶áá»á¬áž ááŸáá·áº post-render output áá±á¬áºáááºáá»á¬ážá
WebGPU áááááá¡ááºá¹áá«áááºááᯠá¡áá»á¬ážá¡á¬ážááŒáá·áº binding model áá¯áá±á«áºáááºá
Vulkan ááœááºááŸááá±á¬ á¡áááºážá¡ááŒá
áºá¡á¯ááºá
á¯ááœá²ááŒááºážáááááá¬áá»á¬ážááᯠá¡ááŸááºáá
á±áááºá
á¡áááºážá¡ááŒá
áºáá»á¬ážááᯠá¡áá°ááᜠá¡á¯ááºá
á¯ááœá²á·áááºá WebGPU ááẠá¡áááá·áºáá»á¬ážáá±ážáá¬ážáá±á
áẠShaders áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠá¡ááŒá¬ážáá±á¬ á¡áá¬ážáá°á¡áá¬áá»á¬ážááŸáá·áº áááºá
ááºááá¯ááºááá·áº GPUBindGroup á¡áá¬ááá¹áá¯ááᯠáá¶á·ááá¯ážáá±ážáá«áááºá ááá¯ááá¯á·áá±á¬á¡ááœá²á·áá»á¬ážááá¯áááºáá®ážááŒááºážááẠáá¬ááºáá±á¬ááºážá¡á¬áž ááá¯á¡ááºáá±á¬ááŒáá¯áááºááŒááºáááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºá
á±ááŒá®áž ááœá²áá±á«áºáá±á«áºááá¯ááŸá¯áá»á¬ážááŒá¬ážááœáẠá¡áááºážá¡ááŒá
áºáá»áááºáááºááŸá¯áá»á¬ážááᯠááá±á¬ááºáá¬á¡á¬áž ááŒá±á¬ááºážáá²ááá¯ááºá
á±áá«áááºá GPUBindGroupLayout á¡áá¬ááá¹áá¯ááᯠá¡áá¯á¶ážááŒá¯á áááºážááŒá
áºá
ááºážááŸá±á¬ááºááŒááºážá á¡ááŒááºá¡áááºááᯠááŒáá¯áááºáááºááŸááºááá¯ááºáááºá
Firefox ááœááºá about:config ááœáẠWebGPU ááá¯ááœáá·áºáááºá âdom.webgpu.enabledâ áááºáááºáá
áºáá¯ááŸááááºá CanvasContext rendering ááœáẠáá±á«ááºážá
ááºááœá²á·á
ááºážááŒááºážááᯠááœáá·áºáá¬ážááẠááá¯á¡ááºáááºá
source: opennet.ru