W3C inoburitsa dhizaini yeWebGPU standard

ΠšΠΎΠ½ΡΠΎΡ€Ρ†ΠΈΡƒΠΌ 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 ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ².

Zvinhu zvakakosha zveWebGPU:

  • Kupatsanura manejimendi ezviwanikwa, basa rekugadzirira uye kuendesa mirairo kuGPU (muWebGL chinhu chimwe chaive chekuita nezvese kamwechete). Matatu akapatsanurwa mamiriro akapihwa: GPUDevice yekugadzira zviwanikwa zvakaita semavara uye buffers; GPUCommandEncoder yekukodha mirairo yega, kusanganisira kupa uye computation matanho; GPUCommandBuffer ichaiswa mumutsara kuti iitwe paGPU. Mhedzisiro yacho inogona kupihwa munzvimbo yakabatana nechinhu chimwe kana anopfuura canvas, kana kugadziriswa pasina kuburitsa (semuenzaniso, paunenge uchimhanyisa compute mabasa). Kupatsanura nhanho kunoita kuti zvive nyore kuparadzanisa kugadzirwa kwezviwanikwa uye magadzirirwo ekugadzirira kuva vabati vakasiyana vanogona kumhanya pashinda dzakasiyana.
  • Imwe nzira yakasiyana yekugadzirisa nyika. WebGPU inopa zvinhu zviviri - GPURenderPipeline uye GPUComputePipeline, iyo inokutendera kuti ubatanidze nyika dzakasiyana-siyana dzakafanotsanangurwa nemugadziri, izvo zvinobvumira bhurawuza kuti isatambise zviwanikwa pane mamwe mabasa, akadai sekudzorera shaders. Matunhu anotsigirwa anosanganisira: shaders, vertex buffer uye hunhu marongero, anonamira emapoka marongero, kusanganisa, kudzika uye mapatani, uye post-render zvinobuda mafomati.
  • Modhi inosunga yakafanana neiyo Vulkan's resource grouping features. Kuunganidza zviwanikwa pamwechete, WebGPU inopa GPUBindGroup chinhu, chinogona kubatanidzwa nezvimwe zvinhu zvakafanana zvekushandisa mumumvuri uchinyora mirairo. Kugadzira mapoka akadaro kunobvumira mutyairi kuti aite anodiwa ekugadzirira zviito zvisati zvaitika, uye inobvumira bhurawuza kuti ichinje zvisungo zvinosungirwa pakati pekudhirowa mafoni nekukurumidza. Kurongeka kwezvisungo zvinosungirwa zvinogona kufanotsanangurwa uchishandisa GPUBindGroupLayout chinhu.

Source: opennet.ru

Voeg