Ноћне верзије Фирефок-а сада укључују подршку за ВебГПУ

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

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

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

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

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

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

Трећа карактеристика ВебГПУ-а се углавном зове модел везивања
подсећа на алатке за груписање ресурса присутне у Вулкану.
За груписање ресурса, ВебГПУ обезбеђује ГПУбиндГроуп објекат, који се може повезати са другим сличним објектима за употребу у схадерима током писања команди. Креирање таквих група омогућава драјверу да унапред изврши неопходне припремне радње и омогућава претраживачу да промени везивања ресурса између позива за цртање много брже. Распоред везивања ресурса може се унапред дефинисати коришћењем ГПУбиндГроупЛаиоут објекта.

Ноћне верзије Фирефок-а сада укључују подршку за ВебГПУ

У Фирефок-у, да бисте омогућили ВебГПУ у абоут:цонфиг, постоји поставка „дом.вебгпу.енаблед“. ЦанвасЦонтект рендеровање такође захтева да буде омогућено састављање ВебРендер („гфк.вебрендер.алл“ у абоут:цонфиг), написано у Руст-у и пребацује операције приказивања садржаја странице на ГПУ. Имплементација ВебГПУ-а је заснована на коду пројекта
вгпу, написан у Руст-у и способан да ради преко ДКС12, Вулкан и Метал АПИ-ја на Линук-у, Андроид-у, Виндовс-у и мацОС-у (подршка за ДКС11 и ОпенГЛ ЕС 3.0 је такође у развоју). Паралелно, Гоогле развија још једну имплементацију, која је доступна у Канарска грана Цхромиум и омогућен је помоћу ознаке „цхроме://флагс/#енабле-унсафе-вебгпу“, али до сада ради само на мацОС-у и Виндовс-у.

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

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