Поддръжката на WebGPU идва при нощните версии на Firefox

Публикувана информация за интегриране на спецификацията за помощ на WebGPU във Firefox всяка вечер, която сега осигурява интерфейс за програмиране за обработка на 3D графики и изчисления от страна на GPU, концептуално подобни на API на Vulkan, метал и Direct3D 12. Спецификацията се разработва от Mozilla, Google, Apple, Microsoft и представители на общността в работна група, създадена от организацията W3C.

Основната цел на WebGPU е да създаде сигурен, удобен, преносим и високопроизводителен софтуерен интерфейс за използване в уеб платформата с 3D графична технология и възможности, предоставени от съвременните системни графични API, като Direct3D 12 за Windows, Metal за macOS и Vulkan за Linux.

Концептуално, WebGPU се различава от WebGL по същия начин, по който Vulkan се различава от OpenGL и не се основава на конкретен графичен API, а по-скоро е универсален слой, като цяло използва същите примитиви на ниско ниво, които се предлагат във Vulkan, Metal и Direct3D.

Във Firefox се предоставя настройка "dom.webgpu.enabled", за да се активира WebGPU в около: config. В допълнение към изобразяването на CanvasContext той също така изисква включването на системата за композиция WebRender ("gfx.webrender.all" в about: config).

Реализацията на WebGPU се основава на кода на проекта wgpu, написан на Rust, и може да работи върху API на DX12, Vulkan и Metal на Linux, Android, Windows и macOS (поддръжката на DX11 и OpenGL ES 3.0 също е в процес на разработка).

За WebGPU

WebGPU предоставя на JavaScript приложения с инструменти за контрол на по-ниско ниво за организацията, обработка и предаване на команди към графичния процесор, управление на свързани ресурси, памет, буфери, текстурни обекти и компилирани графични шейдъри. Този подход ще го направи позволява графични приложения с по-висока производителност чрез намаляване на режийните разходи и увеличаване на ефективността при работа с графичния процесор.

WebGPU дава възможност за създаване на цялостни сложни 3D проекти за мрежата те не се представят по-зле от самостоятелните програми, които комуникират директно с Vulkan, Metal или Direct3D, но не са обвързани с конкретни платформи.

също предоставя допълнителни възможности чрез пренасяне на собствени графични програми до форма, която може да функционира на базата на уеб-базирани технологии чрез използване на технологията WebAssembly.

В допълнение към 3D графиката, WebGPU също така обхваща възможностите, свързани с елиминирането на изчисленията до GPU и подкрепа за разработване на шейдър. Шейдърите могат да бъдат създадени на езика на шейдърите WebGPU или да бъдат посочени в междинния формат SPIR-V и след това да бъдат преведени на шейдър езици, поддържани от текущите драйвери.

WebGPU използва отделно управление на ресурсите, подготвителна работа и прехвърляне на команди към GPU (в WebGL един обект е отговорен за всичко наведнъж). Осигурени са три отделни контекста: GPUDevice за създаване на ресурси като текстури и буфери; GPUCommandEncoder за кодиране на отделни команди, включително етапи на изобразяване и изчисление; GPUCommandBuffer за опашка за изпълнение на GPU.

Втората разлика между WebGPU и WebGL е различният подход към обработката на състоянията. В WebGPU са предложени два обекта: GPURenderPipeline и GPUComputePipeline, които позволяват комбиниране на няколко състояния, предварително дефинирани от разработчика, което позволява на браузъра да не губи ресурси за допълнителна работа, като прекомпилиране на шейдъри. Поддържаните състояния включват: шейдъри, буфери на върхове и оформления на атрибути, прикачени групови оформления, смесване, дълбочина и модели, изходни формати след изобразяване.

Третата характеристика на WebGPU е моделът на обвързване, което в много отношения прилича на средствата за обединяване на ресурси, налични във Vulkan. За да групира ресурси в групи, WebGPU предоставя обект GPUBindGroup, който чрез въвеждане на команди може да бъде свързан с други подобни обекти за използване в шейдъри.

Създаването на такива групи позволява на водача да извърши необходимите подготвителни действия предварително, а браузърът му позволява да превключва много по-бързо ресурсните връзки между извикващите повиквания.

Fuente: https://hacks.mozilla.org/


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.