Nvidia Copy Engine
Kapitoly článků
Dosavadní řešení přepínání grafik spoléhalo na přídavný hardware v podobě „muxů“, které skutečně přepínaly výstupy integrované a diskrétní grafiky do obvodů starajících se o zobrazení výsledného obrazu. To s sebou přinášelo jednak další náklady za tyto přepínací čipy a v neposlední řadě znáte jistě výsledný efekt, kdy při přepnutí dojde na chvilku ke ztmavnutí obrazovky, než se to prostě přepne (v závislosti na rychlosti reakce displeje to mohlo být od jedné do několika sekund). Pro skutečně automatické přepínání je tento koncept krajně nevhodný, protože by pořád přeblikával obraz. Technologie Nvidia Optimus toto řeší vskutku šalamounsky (Nvidia si na to podala patent a čeká na jeho přiklepnutí), přitom k tomu ale používá existující zdokumentované aplikační rozhraní integrovaných grafik Intel. Ty samotné nemají vlastní paměť, jejich frame buffer je vytvořen z části operační paměti. V případě, kdy pracuje integrovaná grafika, není co řešit, tato si vytváří obraz a ten následně klasicky pošle na výstup (v případě grafiky integrované v čipsetu ho tam posílá rovnou, v případě grafiky integrované v procesoru ho tam posílá skrze rozhraní FDI přes čipset, na nějž jsou výstupy napojeny).
Jak se ale dostane grafický výstup z diskrétní grafiky do téhož výstupu, který používá grafika integrovaná? Jednoduše, diskrétní grafika pošle svůj obraz přes PCI Express do té části frame bufferu integrované grafiky, která je určena pro už hotový vyrenderovaný obraz. Integrovaná grafika ho pak jen zobrazí, jakoby to byl obraz, který vytvořila sama. Integrovaná grafika v tu chvíli funguje jen jako jednoduchý „řadič zobrazení“. Proto nedochází k žádnému blikání při přepínání grafik, proto si uživatel přepnutí grafiky vůbec nevšimne.
Za normálních okolností by přesun dat k zobrazení z frame bufferu diskrétní do frame bufferu integrované grafiky probíhal standardním mem2mem synchronním DMA přenosem. Po celou dobu tohoto synchronního přenosu je však v rámci zachování konzistence těchto dat blokována práce 3D engine diskrétní grafiky, což samozřejmě brzdí její výkon. Nvidia Copy Engine spoléhá na to, že PCI Express sběrnice je plně duplexní (lze posílat data oběma směry současně) a využívá asynchronní DMA přenosy, což umožňuje i během posílání dat z frame bufferu diskrétní grafiky do zobrazovacího frame bufferu integrované grafiky práci 3D engine diskrétní grafiky, která mezitím může nerušeně pracovat. Nvidia příliš detaily nehýří a spíše nám připadá, že zde malinko mlží, aby konkurenci nepředložila rovnou „hotovou specifikaci“. Prý je pro implementace této funkce potřeba jistá úprava tištěného spoje, takže na základních deskách, které s technologií Optimus nepočítají, to prostě nefunguje. Jde však o úpravu finančně nenáročnou, nevyžaduje to žádné další čipy, pouze je potřeba něco navíc „prodrátovat“, detaily si však Nvidia nechává pro sebe.
Vrátíme se na chvilku ke stinným stránkám této technologie. Jednou z nich pravděpodobně bude fakt, že se setkáte s hrami a aplikacemi, které jsou tak nenáročné, že je pro ně diskrétní grafiky škoda, zvládla by to i integrovaná. Nvidia Optimus je technologie tak automatická, až by to někoho mohlo mrzet, proto je možné do určité míry její chování ovlivnit a vy už asi tušíte, že způsob bude podobný jako v případě práce SLI. Jde o profily v ovládacím panelu grafického ovladače pro GeForce, v něm je možné nadefinovat, zda bude aplikace používat grafiku integrovanou, nebo diskrétní.
Aby však Nvidia ušetřila uživateli práci s definicí těchto profilů, hodlá v brzké době zavést něco, co známe z jiných odvětví, samotný systém Windows nevyjímaje: automatické aktualizace online. Je sice pravda, že pak bude uživatel odkázán na to, jaké profily Nvidia vytvoří a je pochopitelně otázkou, jak moc se tomu skutečně bude věnovat, ale pro uživatele, který nechce řešit to či ono, je to asi jediné schůdné řešení, byť nemusí být optimální.