L-appoġġ tal-WebGPU se jkun attivat fil-Chrome

Google ħabbret l-inklużjoni ta 'appoġġ default għall-API tal-grafika WebGPU u WGSL (WebGPU Shading Language) f'Chrome 113, li huwa skedat għal rilaxx fit-2 ta' Mejju. WebGPU jipprovdi interface ta 'programmazzjoni simili għal Vulkan, Metal, u Direct3D 12 għat-twettiq ta' operazzjonijiet fuq in-naħa tal-GPU bħal rendering u kompjuters, u jippermetti wkoll l-użu ta 'lingwa shader biex tikteb programmi li jimxu fuq in-naħa tal-GPU. L-implimentazzjoni tal-WebGPU inizjalment se tkun attivata biss fuq il-bini ta' ChromeOS, macOS u Windows. Għal Linux u Android, l-appoġġ WebGPU se jiġi attivat f'data aktar tard.

Minbarra Chrome, l-appoġġ sperimentali għall-WebGPU ġie ttestjat minn April 2020 f'Firefox u minn Novembru 2021 f'Safari. Biex tattiva l-WebGPU f'Firefox, għandek issettja l-bnadar dom.webgpu.enabled u gfx.webgpu.force-enabled f'about:config. Għad m'hemm l-ebda pjanijiet biex il-WebGPU tiġi attivata awtomatikament f'Firefox u Safari. Implimentazzjonijiet WebGPU żviluppati għal Firefox u Chrome huma disponibbli fil-forma ta 'libreriji separati - Dawn (C++) u wgpu (Sadid), li tista' tuża biex tintegra l-appoġġ WebGPU fl-applikazzjonijiet tiegħek. Għaddejja wkoll ħidma biex jiżdied l-appoġġ WebGPU għal libreriji JavaScript popolari li jużaw WebGL b'mod nattiv. Pereżempju, appoġġ sħiħ għal WebGPU diġà tħabbar f'Babylon.js, u appoġġ parzjali fi Three.js, PlayCanvas u TensorFlow.js.

Kunċettwalment, WebGPU huwa differenti minn WebGL bl-istess mod li l-API tal-grafika Vulkan hija differenti minn OpenGL, iżda WebGPU mhix ibbażata fuq API grafika speċifika, iżda hija saff universali li juża l-istess primitives ta 'livell baxx li jinsabu f'Vulkan, Metal u Direct3D. WebGPU jipprovdi applikazzjonijiet JavaScript b'kontroll ta 'livell baxx fuq l-organizzazzjoni, l-ipproċessar u t-trażmissjoni ta' kmandi lill-GPU, il-ġestjoni tar-riżorsi assoċjati, memorja, buffers, oġġetti nisġa u shaders tal-grafiċi kkumpilati. Dan l-approċċ jippermettilek li tikseb prestazzjoni ogħla għall-applikazzjonijiet tal-grafika billi tnaqqas l-ispejjeż ġenerali u żżid l-effiċjenza tax-xogħol mal-GPU.

WebGPU jagħmilha possibbli li jinħolqu proġetti 3D kumplessi għall-Web li ma jwettqux agħar minn programmi waħedhom li jużaw direttament Vulkan, Metal jew Direct3D, iżda mhumiex marbuta ma 'pjattaformi speċifiċi. WebGPU jipprovdi wkoll kapaċitajiet addizzjonali għall-portabbiltà tal-programmi tal-grafika indiġeni f'forma ppermettiet għall-web permezz ta 'kompilazzjoni f'WebAssembly. Minbarra l-grafika 3D, WebGPU jinkludi wkoll kapaċitajiet relatati mal-ħatt ta 'kalkoli għall-GPU u l-eżekuzzjoni ta' shaders.

Karatteristiċi ewlenin tal-WebGPU:

  • Ġestjoni separata tar-riżorsi, xogħol preparatorju u trasmissjoni ta 'kmandi lill-GPU (f'WebGL oġġett wieħed kien responsabbli għal kollox f'daqqa). Tliet kuntesti separati huma pprovduti: GPUDevice għall-ħolqien ta 'riżorsi bħal textures u buffers; GPUCommandEncoder għall-kodifikazzjoni ta' kmandi individwali, inklużi stadji ta' rendering u komputazzjoni; GPUCommandBuffer għandu jitqiegħed fil-kju għall-eżekuzzjoni fuq il-GPU. Ir-riżultat jista 'jiġi mgħoti f'żona assoċjata ma' element tal-kanvas wieħed jew aktar, jew ipproċessat mingħajr output (per eżempju, meta jkunu qed iħaddmu kompiti ta 'komputazzjoni). Is-separazzjoni tal-istadji tagħmilha aktar faċli li tissepara l-ħolqien tar-riżorsi u l-operazzjonijiet ta 'preparazzjoni f'handlers differenti li jistgħu jimxu fuq ħjut differenti.
  • Approċċ differenti għall-istati tal-ipproċessar. WebGPU joffri żewġ oġġetti - GPURenderPipeline u GPUComputePipeline, li jippermettulek tgħaqqad diversi stati definiti minn qabel mill-iżviluppatur, li jippermetti li l-browser ma jaħlix riżorsi fuq xogħol addizzjonali, bħal shaders mill-ġdid. L-istati appoġġjati jinkludu: shaders, vertex buffer u layouts tal-attributi, layouts tal-gruppi li jwaħħlu, taħlit, fond u mudelli, u formati ta 'output ta' wara r-rendi.
  • Mudell li jorbot ħafna bħall-karatteristiċi ta 'raggruppament tar-riżorsi ta' Vulkan. Biex jiġbor ir-riżorsi flimkien, WebGPU jipprovdi oġġett GPUBindGroup, li jista 'jiġi assoċjat ma' oġġetti simili oħra għall-użu fi shaders waqt il-kitba tal-kmandi. Il-ħolqien ta 'gruppi bħal dawn jippermetti lis-sewwieq iwettaq l-azzjonijiet preparatorji meħtieġa minn qabel, u jippermetti lill-browser ibiddel ir-rabta tar-riżorsi bejn is-sejħiet ta' tlugħ ħafna aktar malajr. It-tqassim tal-irbit tar-riżorsi jista' jiġi predefinit bl-użu tal-oġġett GPUBindGroupLayout.

Sors: opennet.ru

Żid kumment