W3C retegit capturam WebGPU vexillum

ΠšΠΎΠ½ΡΠΎΡ€Ρ†ΠΈΡƒΠΌ W3C прСдставил ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‡Π΅Ρ€Π½ΠΎΠ²Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ спСцификаций WebGPU ΠΈ WebGPU Shading Language (WGSL), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… API для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° GPU, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΈ вычислСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ язык ΡˆΠ΅ΠΉΠ΄Ρ€ΠΎΠ² для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° сторонС GPU. ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ схоТий с API Vulkan, Metal ΠΈ Direct3D 12. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ вошли ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΈΠ· Mozilla, Google, Apple ΠΈ Microsoft.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ WebGPU отличаСтся ΠΎΡ‚ WebGL ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ графичСский API Vulkan отличаСтся ΠΎΡ‚ OpenGL, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ основываСтся Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ графичСском API, Π° прСдставляСт собой ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΡƒΡŽ прослойку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π΅ ΠΆΠ΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² Vulkan, Metal ΠΈ Direct3D. WebGPU прСдоставляСт прилоТСниям Π½Π° JavaScript срСдства для Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ контроля Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊ GPU, управлСния связанными рСсурсами, ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ тСкстур ΠΈ скомпилированными графичСскими ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° счёт сниТСния Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GPU.

WebGPU Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для Web слоТныС 3D-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π΅ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ обособлСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Vulkan, Metal ΠΈΠ»ΠΈ Direct3D, Π½ΠΎ Π½Π΅ привязанныС ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌ. WebGPU Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΏΡ€ΠΈ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… графичСских ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Ρ„ΠΎΡ€ΠΌΡƒ, ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π±Π°Π·Π΅ web-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, благодаря компиляции Π² WebAssembly. ΠšΡ€ΠΎΠΌΠ΅ 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ WebGPU ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈ возмоТности, связанныС с выносом вычислСний Π½Π° сторону GPU ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ².

Key lineamenta WebGPU:

  • Distinctio opum administratio, opus praeparatorium ac mandatorum transmissio ad GPU (in WebGL uno obiecto responsabilis erat omnia simul). Tres contextus distincti praebentur: GPUDevice ad facultates creandas ut texturas et buffers; GPUComandEncoder ad singula mandata delatam, in iis versiculos reddendo et computando; GPUCcommandBuffer amet supplicium in GPU. Effectus reddi potest in area coniuncta cum elementis vel pluribus pellibus, vel sine output discursum (exempli gratia, cum negotium computandi currit). Gradus distinguentes facilius efficiunt ut subsidia creationis et praeparationis operationes in diversos tractos qui in varia fila currunt.
  • Aliter accessus ad respublicas expediendas. WebGPU obiecti duo praebet - GPURenderPipeline et GPUComputePipeline, quae te permittunt componere varias civitates a elit prae definitas, quae permittit ut navigatores facultates non perdere in opere addito, ut umbrares componendo. Civitates suffultae includunt: umbrares, vertex quiddam et attributum layout, coetus viscum layouts, mixtura, profunditas et exemplaria, et post-restituunt formas outputas.
  • Exemplar concretum multum similis est notae instrumenti resource Vulkan. Ad facultates congregandas, WebGPU obiectum GPUBindGroup praebet, quod cum aliis similibus obiectis ad usum in shaders scribentis adiungi potest. Coetus tales coetus creandi permittit aurigam ut actiones praeparatorias necessarias in antecessum perficiat, et navigatrum permittit ut ligamenta subsidiorum inter ducatur multo citius vocat. Propositum ligamentorum subsidiorum praefinitum esse potest utens objecto GPUBindGroupLayout.

Source: opennet.ru