Подршка за ВебГПУ ће бити омогућена у Цхроме-у

Гоогле је најавио укључивање подразумеване подршке за ВебГПУ графички АПИ и ВГСЛ (ВебГПУ Схадинг Лангуаге) у Цхроме 113, који је заказан за објављивање 2. маја. ВебГПУ обезбеђује програмски интерфејс сличан Вулкану, Металу и Дирецт3Д 12 за извођење операција на страни ГПУ-а, као што су рендеровање и рачунарство, а такође дозвољава употребу језика схадера за писање програма који се покрећу на страни ГПУ-а. Имплементација ВебГПУ-а ће у почетку бити омогућена само у верзијама ЦхромеОС-а, мацОС-а и Виндовс-а. За Линук и Андроид, подршка за ВебГПУ ће бити активирана касније.

Поред Цхроме-а, експериментална подршка за ВебГПУ је тестирана од априла 2020. у Фирефоку и од новембра 2021. у Сафарију. Да бисте омогућили ВебГПУ у Фирефок-у, требало би да поставите заставице дом.вебгпу.енаблед и гфк.вебгпу.форце-енаблед у абоут:цонфиг. Још увек нема планова да се подразумевано омогући ВебГПУ у Фирефоку и Сафарију. ВебГПУ имплементације развијене за Фирефок и Цхроме доступне су у облику засебних библиотека - Давн (Ц++) и вгпу (Руст), које можете користити за интеграцију подршке за ВебГПУ у своје апликације. Такође се ради на додавању подршке за ВебГПУ популарним ЈаваСцрипт библиотекама које изворно користе ВебГЛ. На пример, пуна подршка за ВебГПУ је већ најављена у Бабилон.јс, а делимична подршка у Тхрее.јс, ПлаиЦанвас и ТенсорФлов.јс.

Концептуално, ВебГПУ се разликује од ВебГЛ-а на исти начин на који се Вулкан графички АПИ разликује од ОпенГЛ-а, али ВебГПУ није заснован на специфичном графичком АПИ-ју, већ је универзални слој који користи исте примитиве ниског нивоа који се налазе у Вулкану, Металу и Дирецт3Д. ВебГПУ пружа ЈаваСцрипт апликацијама контролу ниског нивоа над организацијом, обрадом и преносом команди на ГПУ, управљањем повезаним ресурсима, меморијом, баферима, објектима текстуре и компајлираним графичким схадерима. Овај приступ вам омогућава да постигнете веће перформансе за графичке апликације смањењем режијских трошкова и повећањем ефикасности рада са ГПУ-ом.

ВебГПУ омогућава креирање сложених 3Д пројеката за Веб који не раде ништа лошије од самосталних програма који директно користе Вулкан, Метал или Дирецт3Д, али нису везани за одређене платформе. ВебГПУ такође пружа додатне могућности за преношење матичних графичких програма у веб-омогућен облик путем компилације у ВебАссембли. Поред 3Д графике, ВебГПУ такође укључује могућности које се односе на преношење калкулација на ГПУ и извршавање шејдера.

Кључне карактеристике ВебГПУ-а:

  • Одвојено управљање ресурсима, припремни рад и пренос команди на ГПУ (у ВебГЛ-у је један објекат био одговоран за све одједном). Обезбеђена су три одвојена контекста: ГПУДевице за креирање ресурса као што су текстуре и бафери; ГПУЦоммандЕнцодер за кодирање појединачних команди, укључујући фазе рендеровања и израчунавања; ГПУЦоммандБуффер који се ставља у ред за извршење на ГПУ-у. Резултат се може приказати у области која је повезана са једним или више елемената платна, или обрадити без излаза (на пример, када се извршавају рачунски задаци). Раздвајање фаза олакшава одвајање операција креирања и припреме ресурса у различите руковаоце који могу да раде на различитим нитима.
  • Другачији приступ обради стања. ВебГПУ нуди два објекта - ГПУРендерПипелине и ГПУЦомпутеПипелине, који вам омогућавају да комбинујете различита стања унапред дефинисана од стране програмера, што омогућава претраживачу да не троши ресурсе на додатни рад, као што је поновно компајлирање сејдера. Подржана стања укључују: шејдере, бафере врхова и распореде атрибута, распореде лепљивих група, мешање, дубину и обрасце и излазне формате после рендеровања.
  • Модел везивања сличан Вулкановим карактеристикама груписања ресурса. За груписање ресурса, ВебГПУ обезбеђује ГПУбиндГроуп објекат, који се може повезати са другим сличним објектима за употребу у схадерима током писања команди. Креирање таквих група омогућава драјверу да унапред изврши неопходне припремне радње и омогућава претраживачу да промени везивања ресурса између позива за цртање много брже. Распоред везивања ресурса може се унапред дефинисати коришћењем ГПУбиндГроупЛаиоут објекта.

Извор: опеннет.ру

Додај коментар