В3Ц открива нацрт ВебГПУ стандарда

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

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

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

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

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

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

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