U W3C presenta un prughjettu di standard WebGPU

U W3C hà publicatu i primi abbozzi di e specificazioni WebGPU è WebGPU Shading Language (WGSL), chì definiscenu l'API per eseguisce operazioni GPU cum'è rendering è computing, è ancu una lingua shader per scrittura di prugrammi chì funzionanu nantu à a GPU. conceptually simili à l'API Vulkan, Metal è Direct3D 12. L'specificazioni sò stati preparati da un gruppu di travagliu chì includeva ingegneri di Mozilla, Google, Apple è Microsoft.

Conceptually, WebGPU difiere da WebGL in quantu listessa manera chì l'API grafica Vulkan difiere da OpenGL, ma ùn hè micca basatu annantu à una API grafica specifica, ma hè una capa universale chì usa i stessi primitivi di pocu livellu truvati in Vulkan, Metal è Direct3D. WebGPU furnisce l'applicazioni JavaScript cun un cuntrollu di livellu bassu nantu à l'urganizazione, u trasfurmazioni è a trasmissione di cumandamenti à a GPU, gestionendu risorse associate, memoria, buffers, oggetti di texture è sfumaturi grafici compilati. Stu approcciu permette di ottene un rendimentu più altu per l'applicazioni grafiche riducendu i costi generali è aumentendu l'efficienza di travaglià cù a GPU.

WebGPU permette di creà prughjetti 3D cumplessi per u Web chì ùn funziona micca peggiu di i prugrammi standalone chì accede direttamente à Vulkan, Metal o Direct3D, ma ùn sò micca ligati à e plataforme specifiche. WebGPU furnisce ancu capacità supplementari per portà i prugrammi di grafica nativa in una forma abilitata per u web per via di compilazione in WebAssembly. In più di i grafici 3D, WebGPU include ancu capacità relative à i calculi di scaricamentu à a GPU è l'esecuzione di shaders.

Caratteristiche principali di WebGPU:

  • Gestione separata di risorse, travagliu preparatori è trasmissioni di cumandamenti à a GPU (in WebGL, un ughjettu era rispunsevuli di tuttu in una volta). Trè cuntesti separati sò furniti: GPUDevice per creà risorse cum'è textures è buffers; GPUCommandEncoder per codificà i cumandamenti individuali, cumprese e fasi di rendering è calculu; GPUCommandBuffer per passà à a fila di run GPU. U risultatu pò esse resu in una zona assuciata cù unu o più elementi di tela, o resu senza output (per esempiu, quandu eseguite tarei di calculu). A separazione di e tappe facilita a separà l'operazioni di creazione di risorse è di pruvisione in diversi gestori chì ponu eseguisce in diversi fili.
  • Un approcciu sfarente per trattà i stati. WebGPU furnisce dui ogetti - GPURenderPipeline è GPUComputePipeline, chì permettenu di cumminà diverse stati predefiniti da u sviluppatore, chì permette chì u navigatore ùn perde risorse in u travagliu supplementu, cum'è recompiling shaders. I stati supportati includenu: shaders, buffer di vertice è layout di attributi, layout di gruppu appiccicosu, fusione, prufundità è mudelli, formati di output post-render.
  • Un mudellu di ubligatoriu, cum'è l'arnesi di raggruppamentu di risorse di Vulkan. Per aggrupà e risorse in gruppi, u WebGPU furnisce un ughjettu GPUBindGroup, chì, à u mumentu di scrive cumandamenti, pò esse assuciatu cù altri oggetti simili per l'usu in shaders. A creazione di tali gruppi permette à u cunduttore di realizà l'azzioni preparatori necessarii in anticipu, è permette à u navigatore di cambià l'associazioni di risorse trà e chjama di sorte assai più veloce. U layout di i risorsi di risorsa pò esse predefinitu cù l'ughjettu GPUBindGroupLayout.

Source: opennet.ru

Add a comment