I-W3C ityhila idrafti yeWebGPU esemgangathweni

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

Iimpawu eziphambili zeWebGPU:

  • Ulawulo olwahlukileyo lwezibonelelo, umsebenzi wokulungiselela kunye nokuhanjiswa kwemiyalelo kwi-GPU (kwiWebGL enye into yayinoxanduva kuyo yonke into kanye kanye). Imixholo emithathu eyahlukileyo inikwe: I-GPUDevice yokudala izixhobo ezifana nokuthungwa kunye ne-buffers; IGPUCommandEncoder yokufaka iikhowudi kwimiyalelo yomntu ngamnye, kuquka unikezelo kunye nezigaba zokubala; IGPUCommandBuffer iza kufolelwa ukuphunyezwa kwiGPU. Isiphumo sinokunikezelwa kwindawo ehambelana nenye okanye ngaphezulu kwezinto zeseyile, okanye zisetyenzwe ngaphandle kwemveliso (umzekelo, xa uqhuba imisebenzi yekhompyutha). Ukwahlula izigaba kwenza kube lula ukwahlula ukudalwa kwezixhobo zokusebenza kunye nemisebenzi yokulungiselela kubaphangi abahlukeneyo abanokuqhuba kwimisonto eyahlukeneyo.
  • Indlela eyahlukileyo yokuqhuba amazwe. I-WebGPU inikezela ngezinto ezimbini - i-GPURenderPipeline kunye ne-GPUComputePipeline, ekuvumela ukuba udibanise amazwe ahlukeneyo achazwe ngaphambili ngumthuthukisi, ovumela ukuba isiphequluli singachithi izibonelelo kumsebenzi owongezelelweyo, njengokubuyisela i-shaders. Amazwe axhaswayo aquka: iishaders, i-vertex buffer kunye nokwakheka kweempawu, iiplani zeqela ezincangathi, ukudibanisa, ubunzulu kunye neepateni, kunye neefomathi zemveliso ye-post-render.
  • Imodeli ebophelelayo efana neempawu zeqela lezixhobo zeVulkan. Ukudibanisa izixhobo kunye, i-WebGPU ibonelela ngento ye-GPUBindGroup, enokuthi idibaniswe nezinye izinto ezifanayo zokusetyenziswa kwi-shaders ngelixa ubhala imiyalelo. Ukudala amaqela anjalo kuvumela umqhubi ukuba enze izenzo eziyimfuneko zokulungiselela kwangaphambili, kwaye ivumela isikhangeli ukuba sitshintshe izibophelelo zemithombo phakathi kweefowuni zokutsalwa ngokukhawuleza. Uyilo lwezibophelelo zemithombo lunokuchazwa kwangaphambili kusetyenziswa into yeGPUBindGroupLayout.

umthombo: opennet.ru

Yongeza izimvo