Chrome вече ще има поддръжка за WebGPU и ще бъде активиран по подразбиране

WebGPU Chrome

След години на разработка екипът на Chrome пуска WebGPU

Преди няколко дни Google представи чрез един обявен поддръжката по подразбиране за графичния API на WebGPU и WebGPU Shading Language (WGSL) в клон Chrome 113, който е планиран за пускане на 2 май.

За тези, които не са запознати с WebGPU, трябва да знаете това предоставя API, подобен на Vulkan, Metal и Direct3D 12 за извършване на операции от страна на GPU, като изобразяване и изчисление, а също позволява използването на шейдър език за писане на програми от страна на GPU.

За WebGPU

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

WebGPU ви позволява да създавате сложни 3D проекти за мрежата които работят също толкова добре, колкото и самостоятелни програми, които директно използват Vulkan, Metal или Direct3D, но не са обвързани с конкретни платформи. WebGPU също така предоставя допълнителни опции за пренасяне на собствени графични програми към активиран за уеб формуляр чрез компилиране в WebAssembly. В допълнение към 3D графиките, WebGPU също покрива възможностите, свързани с разтоварването на изчисленията към страната на GPU и стартирането на шейдъри.

От основните характеристики на WebGPU можем да подчертаем следното:

  • Отделно управление на ресурси, подготвителна работа и предаване на команди към GPU (в WebGL един обект отговаряше за всичко наведнъж). Осигурени са три отделни контекста: GPUDevice за създаване на ресурси като текстури и буфери; GPUCommandEncoder за кодиране на отделни команди, включително етапи на обработка и изчисление; GPUCommandBuffer за предаване към опашката за изпълнение на GPU.
    Резултатът може да бъде изобразен в област, свързана с един или повече елементи на платното, или изобразен без изход (например при изпълнение на изчислителни задачи). Етапирането улеснява разделянето на операциите по създаване и осигуряване на ресурси в различни контролери, които могат да работят на различни нишки.
  • Различен подход към управлението на състоянието. WebGPU предоставя два обекта, GPURenderPipeline и GPUComputePipeline, които ви позволяват да комбинирате различни състояния, предварително дефинирани от разработчика, което прави възможно браузърът да не губи ресурси за допълнителна работа, като например повторно компилиране на шейдъри. Поддържаните състояния включват: шейдъри, вертекс буфер и оформления на атрибути, фиксирани групови оформления, смесване, дълбочина и шаблони, изходни формати след рендиране.
  • Обвързващ модел, подобен на инструментите за обединяване на ресурси на Vulkan. За групиране на ресурси в групи, WebGPU предоставя обект GPUBindGroup, който може да бъде обвързан с други подобни обекти за използване в шейдъри по време на запис на команда.
    Създаването на такива групи позволява на контролера да извърши необходимите подготвителни действия предварително и позволява на браузъра да превключва обвързванията на ресурсите между повикванията за теглене много по-бързо. Оформлението на обвързванията на ресурсите може да бъде предварително дефинирано с помощта на обекта GPUBindGroupLayout.

В допълнение към Chrome, експерименталната поддръжка на WebGPU е тествана от април 2020 г. във Firefox и от ноември 2021 г. в Safari. За да активирате WebGPU във Firefox, трябва да зададете флаговете dom.webgpu.enabled и gfx.webgpu.force-enabled в about:config.

Все още няма планове за активиране на WebGPU по подразбиране във Firefox и Safari. Реализациите на WebGPU, разработени за Firefox и Chrome, са налични като отделни библиотеки: Dawn (C++) и wgpu (Rust), които можете да използвате, за да интегрирате поддръжката на WebGPU във вашите приложения.

Също така трябва да се отбележи, че се работи за добавяне на поддръжка на WebGPU към популярни JavaScript библиотеки, използващи естествено WebGL. Например пълна поддръжка на WebGPU вече е декларирана в Babylon.js и частична в Three.js, PlayCanvas и TensorFlow.js.

Въвеждането на WebGPU ще бъде активиран първоначално само в компилации за ChromeOS, macOS и Windows, докато за Linux и Android поддръжката на WebGPU ще бъде активирана на по-късна дата.

И накрая, ако имате интерес да научите повече за него, можете да се консултирате с подробностите В следващия линк.


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

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

*

*

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