В
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
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.
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
Sors: opennet.ru