The cre­ation of a more ef­fi­cient GPU in­ter­face

Up close with the Khronos Group’s Vulkan API

EDGE - - ADVERTISING PROMOTION - For more in­for­ma­tion about Vulkan and Imag­i­na­tion’s Pow­erVR Rogue GPUs, visit tinyurl.com/vulka­napi. For more on Vulkan, visit www.khronos.org/vulkan

There’s a new graph­ics API in town, and its name is Vulkan. For­merly known as glNext, and com­ing from the Khronos Group, it’s the suc­ces­sor to the popular but age­ing OpenGL, and the only cur­rent con­tender still fly­ing the flag for cross­plat­form devel­op­ment in an era of plat­form-ven­dor-owned tech­nolo­gies like Mi­crosoft DirectX and Ap­ple’s Metal. In­stead of fo­cus­ing on pro­pri­etary sys­tems, it’s en­gi­neered to be as close to the ar­chi­tec­ture of all mod­ern GPUs as pos­si­ble, en­abling the most ef­fi­cient ways to make use of them. Lead­ing the way is the Imag­i­na­tion Pow­erVR Rogue se­ries, with its proof-of-con­cept driv­ers for the new API demon­strat­ing its power, and the po­ten­tial for de­vel­op­ers to har­ness it for games and ap­pli­ca­tions on a wide range of mo­bile as well as desk­top plat­forms.

For starters, Vulkan will pro­vide many de­vel­op­ers with a free boost with no ad­di­tional ef­fort re­quired, thanks to en­gines han­dling the me­chan­i­cal changes un­der the hood. Ren­der­ing isn’t sim­ply faster, but more con­sis­tent across sys­tems. With OpenGL, shader com­pi­la­tion, es­pe­cially blend­ing state, can cause shaders to be com­piled even on the first draw call, pro­duc­ing dif­fer­ent per­for­mance ef­fects based on the un­der­ly­ing ar­chi­tec­ture. The re­sult: un­pre­dictabil­ity.

Vulkan avoids this prob­lem by hav­ing as much as pos­si­ble spec­i­fied up­front, at the time of pipe­line cre­ation, rather than dur­ing ren­der­ing. This al­lows for bet­ter sta­bil­ity, fewer frame drops and hic­cups, and, of course, more draw calls. The Pow­erVR Rogue GPUs are de­signed to show­case how much more can be done, with their tiled ar­chi­tec­ture go­ing hand-in­hand with Vulkan’s strengths. One of Vulkan’s key ad­di­tions is its ren­der pass, which gives ap­pli­ca­tions con­trol of up­loads and re­solves of their frame­buffer, so band­width-heavy func­tions are done ex­plic­itly in­stead of the driver need­ing to guess. This re­duced strain al­lows for both im­proved graph­ics and bet­ter bat­tery life on mo­bile de­vices.

Th­ese fea­tures also make Vulkan in­tu­itive to de­velop with, bring­ing an ex­tra level of both con­sis­tency and pre­dictabil­ity across the ren­der­ing sys­tem. In OpenGL, it’s dif­fi­cult to know whether or not an op­er­a­tion would change a par­tic­u­lar global state; there is no global state in Vulkan, help­ing de­vel­op­ers to more in­tu­itively know what is hap­pen­ing. In ad­di­tion, it gives much more con­trol over el­e­ments such as mem­ory al­lo­ca­tion. With Vulkan, ev­ery ap­pli­ca­tion knows ex­actly what and how much it’s us­ing, no longer hav­ing to blindly guess how to re­bal­ance re­sources when faced with a generic ‘out of mem­ory’ er­ror.

Vulkan isn’t sim­ply about GPUs; it’s fo­cused on squeez­ing the best per­for­mance out of the en­tire ar­chi­tec­ture. Idle cores can be pressed into ser­vice, with ren­der­ing com­mands cre­ated across the CPU. No ex­tra work or lock­ing is re­quired, po­ten­tially help­ing a game such as Minecraft, which has to edit its ren­der com­mands on the fly (when­ever a user de­stroys a block), or fu­ture apps such as CAD tools and GPS map­ping soft­ware.

The Vulkan driver, too, does its part for the sys­tem. Its tight ar­chi­tec­ture and lean de­sign keeps things sim­ple, al­low­ing for both more sta­bil­ity and greater ef­fi­ciency than OpenGL – a boon for hard­ware man­u­fac­tur­ers as well as soft­ware de­vel­op­ers. Even in an early state, Imag­i­na­tion’s driv­ers are show­ing sta­ble per­for­mance and frame rate thanks to Vulkan. An early con­ver­sion of an older OpenGL ES demo set in a li­brary al­ready fea­tures less than half of the CPU us­age of its orig­i­nal im­ple­men­ta­tion, and re­sults in a far more con­sis­tent load on the sys­tem – a slightly bumpy line com­pared to the orig­i­nal’s hills and val­leys. Even bet­ter per­for­mance is ex­pected as devel­op­ment con­tin­ues.

Vulkan al­lows for bet­ter sta­bil­ity, fewer frame drops and hic­cups, and, of course, more draw calls

Even us­ing al­pha driv­ers, Imag­i­na­tion Tech­nolo­gies’ li­brary demo shows the ef­fi­cien­cies of the Vulkan ap­proach

Newspapers in English

Newspapers from Australia

© PressReader. All rights reserved.