Il-bini ta 'filgħaxija ta' Firefox issa jinkludi appoġġ WebGPU

В lejl Firefox jibni deher appoġġ għall-ispeċifikazzjoni WebGPU, li jipprovdi interface ta' programmazzjoni għall-ipproċessar tal-grafika 3D u kompjuters min-naħa tal-GPU, kunċettwalment simili għall-API vulkan, Metall и Direct3D 12. L-ispeċifikazzjoni qed tiġi żviluppata minn Mozilla, Google, Apple, Microsoft u membri tal-komunità fi grupp ta 'ħidmamaħluqa mill-W3C.

L-għan ewlieni tal-WebGPU huwa li jipprovdi interface ta' programmar sigur, faċli għall-utent, portabbli u ta' prestazzjoni għolja għall-pjattaforma tal-Web biex tisfrutta t-teknoloġiji u l-kapaċitajiet tal-grafika 3D pprovduti minn APIs tal-grafika tas-sistema moderna, bħal Direct3D 12 fuq Windows, Metal fuq macOS, u Vulkan fuq Linux. Kunċettwalment, WebGPU huwa differenti minn WebGL bl-istess mod li Vulkan huwa differenti minn OpenGL, u fl-istess ħin mhuwiex ibbażat fuq API grafika speċifika, iżda huwa saff universali li ġeneralment juża l-istess primitives ta 'livell baxx misjuba f'Vulkan, Metall u Direct3D.

WebGPU jipprovdi applikazzjonijiet JavaScript b'kontroll ta 'livell aktar 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-grafika kkompilati. 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 sħaħ għall-Web li ma jaħdmux agħar minn programmi waħedhom li jaċċessaw direttament Vulkan, Metal jew Direct3D, iżda mhumiex marbuta ma' pjattaformi speċifiċi. WebGPU jipprovdi wkoll kapaċitajiet addizzjonali meta jittrasferixxu programmi tal-grafika indiġeni f'forma ppermettiet għall-web permezz tal-użu tat-teknoloġija WebAssembly. Minbarra l-grafika 3D, WebGPU ikopri wkoll kapaċitajiet relatati mal-kalkoli tal-ħatt għall-GPU u l-appoġġ tal-iżvilupp tax-shader. Shaders tista ' tinħoloq fil-Lingwa Shading WebGPU jew speċifikata fil-format SPIR-V intermedju, u mbagħad tradotta f'lingwi shader appoġġjati mis-sewwieqa attwali.

WebGPU juża ġ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 nisġa 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 pprorogat 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 biex tissepara l-ħolqien tar-riżorsi u l-operazzjonijiet ta 'preparazzjoni fi handlers differenti li jistgħu jimxu fuq ħjut differenti.

It-tieni differenza bejn WebGPU u WebGL hija approċċ differenti għall-immaniġġjar tal-istati. 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.

It-tielet karatteristika ta 'WebGPU tissejjaħ il-mudell vinkolanti, fil-biċċa l-kbira
reminixxenti tal-għodod ta 'raggruppament tar-riżorsi preżenti f'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 meta tikteb 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.

Il-bini ta 'filgħaxija ta' Firefox issa jinkludi appoġġ WebGPU

Fil-Firefox, biex tippermetti WebGPU f'about:config, hemm issettjar "dom.webgpu.enabled". Ir-rendiment ta' CanvasContext jeħtieġ ukoll li l-kompożizzjoni tkun attivata WebRender (“gfx.webrender.all” f’madwar:config), miktuba f’Rut u esternalizzazzjoni tal-operazzjonijiet ta’ rendering tal-kontenut tal-paġna lill-GPU. L-implimentazzjoni tal-WebGPU hija bbażata fuq il-kodiċi tal-proġett
wgpu, miktuba f'Rut u kapaċi taħdem fuq APIs DX12, Vulkan u Metal fuq Linux, Android, Windows u macOS (l-appoġġ DX11 u OpenGL ES 3.0 jinsab ukoll fl-iżvilupp). B'mod parallel, Google qed tiżviluppa implimentazzjoni oħra, li hija disponibbli fi Fergħa tal-Kanarji Chromium u hija attivata billi tuża l-bandiera "chrome://flags/#enable-unsafe-webgpu", iżda s'issa taħdem biss fuq macOS u Windows.

Sors: opennet.ru

Żid kumment