Magyar Opera

Operások írták - VEGA ismertető

Nem, sajnos még nem lehet kipróbálni az új VEGA vektorgrafikus motort. Addig is, amíg várakozunk rá, - jobb híján - olvassuk el, mit írtak róla az Opera fejlesztői, még idén februárban, a Core blogon. Akkor át is adnám nekik a szót...

Ez a bejegyzés a "Vega - Opera's vector graphics library" című cikk fordítása. Az eredeti cikk 2009. február 4-én jelent meg a Core blogon.

A korábbi bejegyzésemben írtam egy keveset az Opera hardveresen gyorsított vektorgrafikus könyvtáráról. Ebben az írásban további részleteket olvashattok róla.

A Vega története

A Vega-t nem sokkal az SVG támogatás fejlesztésének megkezdését követően alkottuk meg. Amikor implementáltuk az SVG támogatást az Operába, szükségünk volt egy vektorgrafikus könyvtárra. Körülnéztünk az akkori alternatívák között, hogy melyik felelne meg leginkább az igényeinknek (gyors, alacsony memóriaigény, telefontól kezdve a TV-n át a PC-ig sok platformon működjön). Mivel egyet sem találtunk, ami megfelelt volna, egy saját verzió megírása mellett döntöttünk.

Röviddel a Vega megalkotását követően implementáltuk a canvas támogatást is, ami szintén a Vega-t használja.

A Vega legújabb funkciója, hogy képes a hardveresen gyorsított kimenetek (back-end) alkalmazására is. A pillanatnyilag használt két kimenet az OpenGL és a Direct3D.

HTML renderelés

A jelenleg [tehát a cikk megírásakor] fejlesztés alatt álló motorban, a Presto 2.3-ban [ami már készen van, most a 2.4-en dolgoznak] lehetővé tettük, hogy a Vega végezzen minden renderelést az Operában. A jövőben elképzelhető, hogy csak ez a megoldás lesz elérhető, de a Presto 2.3-ban még lehetőség van a korábbi megoldások használatára is.

Három okból döntöttünk így [mármint, hogy a Vega rendereljen mindent]. Az első, hogy az új CSS3 background és borders szabványokat sokkal könnyebb vektorgrafikusan implementálni. A Presto 2.3 már részlegesen támogatja ezeket az újításokat, de csakis a Vega renderelést használva.

A másik ok a hardveres gyorsítás lehetősége. Ahhoz ugyanis, hogy hardverből SVG-t és canvas-t renderelhessünk, szükség van arra, hogy közvetlenül kirajzolhassuk a képernyőre a renderelt vektorábrát, mivel annak a videokártyából való visszaolvasása általában tovább tartana, mint egyszerűen szoftverből renderelni. [magyarul: vagy mindent hardverből csinálunk, vagy semmit, mert a vegyes megoldás lassabb és nyűgösebb]

A harmadik indok, hogy így lehetővé vált számunkra, hogy komplex grafikai effekteket rendelhessünk a felhasználói felülethez, illetve a honlapokhoz.

Hardverkövetelmények

A hardveres kimenet sajnos nem működik minden grafikus kártyán. Jó hír viszont, hogy a program futás közben kideríti, hogy a kártyád támogatott-e vagy sem, az utóbbi esetben a szoftveres megjelenítés aktivizálódik. Ez azt jelenti, hogy minden működni fog, a grafikus kártyád képességeitől függetlenül [csak ekkor nyilván nem lesz hardveres gyorsítás].

Az első követelmény a hardverrel szemben, hogy rendelkeznie kell gyors stencil bufferekkel. Ez a PC-n nem probléma [nagyjából az ezredforduló óta tudják a kártyák], a mobil eszközökön viszont igen. A használatát az indokolja, hogy ezt használjuk bizonyos komplex formák renderelésére ahelyett, hogy tesszellációt követően pusztán háromszögeket renderelnénk.

Mivel bizonyos szabványok (például az átlátszóság, az SVG és a canvas) egy nem látható buffer használatát igényli (aminek tartalma aztán a képernyőre kerül), szükségünk van a textúrába renderelés képességére is ahhoz, hogy a hardveres kimenetet használhassuk. Ez DirectX9 kompatibilis grafikus kártyát jelent, vagy a framebuffer object (FBO) támogatását OpenGL alatt. Mindez megoldható lenne a pbufferek használatával is, de ebben az esetben sok render target váltásra lenne szükség, ami nagyon belassítaná a folyamatot.

A végső követelmény a 2.0 pixel árnyalók (pixel-shader - DirectX), vagy töredék-árnyalók (fragment shader - OpenGL) megléte. Erre a szűrők miatt van szükség, amik az SVG részei. Segítségükkel olyan hatások hozhatók létre, mint az elmosás (blur) vagy a színtranszformáció. A szűrők továbbá szükségesek a canvas-hoz, a HTML-ben pedig támogatják a szövegárnyékolást, valamint a doboz-árnyékolást (box-shadows).

A PC felhasználók esetén a DirectX 9 kompatibilis hardverek teljesítik a fenti követelményeket, tehát ha rendelkezel ilyennel, akkor megfelelő meghajtóprogram használatával [ami nyilván egy kellően friss ForceWare-t vagy Catalyst-ot jelent] képes leszel kihasználni a Vega hardveres kimenetét.

A bejegyzés trackback címe:

https://magyaropera.blog.hu/api/trackback/id/tr11586060

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

penge™ · http://www.thevenusproject.com/ 2009.12.09. 18:33:57

Király, akkor nem kell upgrade-elnem a 7600GT-t.
De már nem bánnám ha jönne, de eddig még a 10.20-ból sincs új snapshot, csak egy alfa, ez pedig abba már nem kerül bele…

Na meg eddig még Karbonade sem dicsekedett vele, hogy már kapott egy top secret feljesztői előzetest és találjuk ki, hogy milyen új fícsör van benne. :D

Teddy Beer 2009.12.09. 20:06:11

@penge™: Még idén lehet tesztelni. Nem tudom, de talán ez még az S3 Prosavage 4-hez is elég lehet (vagy nem), de a GMA950-hez tuti, szóval már a rajtnál elveri azokat, akik Vista és Win7 only megoldásokkal jönnek. Legalább van valami előnye annak, hogy az Opera nem csak Windowsra fejleszt.

penge™ · http://www.thevenusproject.com/ 2009.12.09. 20:22:23

@Teddy Beer: Azért ebből is látszik, hogy európai vagy amerikai cégről van szó. Az amerikai csak az USA-ban gondolkodik, hogy ott röhögve vesz bárki DX10-es VGA-t, ha eddig nem vett (mondjuk lustaságból), az európai pedig gondol a kelet-európai piacra és sokszor még a harmadik világra (Opera Turbo) is.

A videokártyával meg főleg úgy vagyok, hogy mivel a játékigényemet kielégíti a passziánsz, vagy a flash alapú biliárd, így nem szívesen fejlesztem, ha nem muszáj.

cousin333 · http://magyaropera.blog.hu 2009.12.09. 21:12:31

@Teddy Beer: Szerintem ezek a hardverkövetelmények nem komolyak. Úgy értem, amelyikben van hardvertámogatás a kívánt funkciókra, annál a sebesség már talán nem számít annyit. Bár érdekes kérdés lesz a nem túl távoli jövőben, hogy egy gyors videokártyával gyorsabbak lesznek-e a nem játék jellegű alkalmazások... :)

"Legalább van valami előnye annak, hogy az Opera nem csak Windowsra fejleszt."

Sőt, mobilokra és más eszközökre is. Ugyanakkor hátrány, hogy emiatt csúsztat dolgokat, meg nem elég neki egyvalamire elkészülni, hanem mindenhova kell. Szerintem már régen lenne Carakan, ha csak PC-re kellene.

De ahogy néztem, a TraceMonkey bekerül a Firefox Mobile-ba i, szóval nem alaptalan a multiplatformra összpontosítás.

@penge™: Nekem ez nem DX10 pártiságnak tűnik. Inkább felbukkant egy új technika, IE támogatni fogja, akkor az FF sem maradhat el. Bár részleteket nem ismerek, de továbbra is tartom, hogy az FF megoldása elég primitív.

ui: állítólag a Presto 2.4 még szoftverből is gyorsabb... :D

Karbonade · http://magyaropera.blog.hu 2009.12.09. 23:02:48

@penge™: A Unite kapcsán lehetett ilyesmire utalni, mert egyrészt ők is utaltak, másrészt nem mondtak róla semmit korábban. A Vega azért nem ilyen. Ráadásul nem árulok el semmi titkot azzal, ha elárulom, hogy semmit nem tudok róla.

penge™ · http://www.thevenusproject.com/ 2009.12.09. 23:13:13

@Karbonade: Igazad van, ezt már sem a Carakannál, sem a Vegánál nem tudják eljátszani, mivel a linkről és a Unite-ról előtte nem tudtunk semmit.
Egyébként úgy értettem a titkot, hogy ha annyit tudnánk, hogy te már valami új buildet használsz, akkor lehetne sejteni, hogy hamarosan 1-1,5 hónapon belül megkapjuk mi is. De így márciusban majd valamikor végleges lesz a 10.20, aztán ha szerencsénk van áprilisban megkapjuk az első alfát a 10.5-ből, amiben már benne lesz remélhetőleg a Carakan és a VEGA is.

Cobalt 2009.12.10. 07:29:23

Szerintem nem alnak olyan rosszul a 2.4es Prestoval sem. A legujabb mobil betak mar azzal mennek. Nem lepodnek meg ha az iden meg villantananak valamit.

Karbonade · http://magyaropera.blog.hu 2009.12.10. 07:39:15

@Cobalt: csak az Opera Mobile, a Mini még nem. De azért igazad van, valóban olyan állapotban kell legyen, hogy már kiadhatnának vele valamit az asztaliból is.

Dzsini 2009.12.10. 07:58:13

@Karbonade: mondjuk logikusabb, hogy erről nem tudsz semmit - egy Vega vagy motor változtatás nem jár olyan részletekkel, ami miatt új fordításra legyen szükség, így nem fogják kiadni a fordítóknak, hogy "nézzétek, új motor, le kellene fordítani benne azt, hogy: ..."
Ideális esetben az átlag user maximum annyit vesz észre, hogy 0.3 helyett 0.12 másodperc alatt jelenik meg az oldal, nincs hozzá felirat :)

Teddy Beer 2009.12.10. 09:21:25

@penge™: Nálam már 2003 óta AGP és socket 478 a menő. Szóval a gépem enyhén "kifutott", de azért a notebookokat 150 ezerig veri húzás nélkül, gyakorlatilag az első nem inteles gpu-ig. Öreg, de olcsó és működik. Ilyenkor max azon filózok, mikor lesz kevés a 2GB ramban, mivel xp home alá többet nem nagyon érdemes rámolni, esetleg 3GB, ha maximalisták vagyunk, de már az is necces.
Jah és egy kis emlékeztető: pcforum.hu/tudastar/37784/AGP+8x+VGA+4x-es+AGP+Slotban.html

Teddy Beer 2009.12.10. 09:24:03

Nem tudom mi van. Elküldtem az elsőt de semmi nem látszott. Próbálok tutira menni, ezért elküldök egy másikat és megjelenik az első is. Mi ez? Bug? Feature?

penge™ · http://www.thevenusproject.com/ 2009.12.14. 10:17:35

Az jutott eszembe, hogy ha benne lesz az Operában a VEGA, akkor elképzelhető, hogy végre a Visual Tabs és a Tabs Preview is valós időben jeleníti meg az oldalt, illetve az oldalon lévő beépülőket?

cousin333 · http://magyaropera.blog.hu 2009.12.25. 15:50:31

@penge™: Na igen, de ezt még vagy nem rakták bele a 10.5-ben, vagy meg kell várnunk vele a hardveres gyorsítást. Vagy még úgy sem lesz ilyen... (bár ennek nem látom okát).

penge™ · http://www.thevenusproject.com/ 2009.12.25. 17:15:11

@cousin333: A lényeg inkább, hogy milyen lesz, ha lesz. Elvileg a Flash beállításainál is van olyan, hogy "hardware acceleration" (automatikusan benne van a pipa), de azért mégis 70%-ra zabálja a procit egy 1080p videó, nem tudom ilyenkor minek hever ott parlagon a 7600GT...
süti beállítások módosítása