Optimalizace výkonu: Využití výhod hardwaru

Interní architektura WPF má dva kanály vykreslování, hardware a software. Toto téma obsahuje informace o těchto kanálech vykreslování, které vám pomůžou při rozhodování o optimalizacích výkonu vašich aplikací.

Kanál vykreslování hardwaru

Jedním z nejdůležitějšíchfaktorůch Čím více vykreslování se ale dá přesměrovat na grafickou procesorovou jednotku (GPU), tím vyšší výhody výkonu získáte. Kanál vykreslování hardwaru aplikace WPF plně využívá funkce Microsoft DirectX na hardwaru, které podporují minimálně rozhraní Microsoft DirectX verze 7.0. Další optimalizace lze získat hardwarem, který podporuje funkce Microsoft DirectX verze 7.0 a PixelShader 2.0+.

Kanál vykreslování softwaru

Kanál vykreslování softwaru WPF je plně vázán na procesor. WPF využívá sady instrukcí SSE a SSE2 v procesoru k implementaci optimalizovaného plně funkčního softwarového rasterizátoru. Náhradní software je bezproblémový, kdykoli není možné vykreslit funkce aplikace pomocí kanálu vykreslování hardwaru.

Největší problém s výkonem, se kterým se setkáte při vykreslování v softwarovém režimu, souvisí s rychlostí výplně, která je definována jako počet pixelů, které vykreslujete. Pokud máte obavy o výkon v režimu vykreslování softwaru, zkuste minimalizovat počet překreslení pixelů. Pokud máte například aplikaci s modrým pozadím, které pak vykreslí mírně průhledný obrázek, vykreslíte všechny pixely v aplikaci dvakrát. V důsledku toho bude vykreslení aplikace s obrázkem dvakrát trvat, než kdybyste měli pouze modré pozadí.

Vrstvy vykreslování grafiky

Může být velmi obtížné předpovědět konfiguraci hardwaru, na které bude vaše aplikace běžet. Můžete ale zvážit návrh, který vaší aplikaci umožňuje bezproblémově přepínat funkce při použití na jiném hardwaru, aby mohla plně využít výhod jednotlivých konfigurací hardwaru.

K dosažení tohoto cíle poskytuje WPF funkce pro určení grafické schopnosti systému za běhu. Grafická schopnost je určena kategorizací grafické karty jako jedné ze tří úrovní možností vykreslování. WPF zveřejňuje rozhraní API, které aplikaci umožňuje dotazovat se na úroveň schopností vykreslování. Vaše aplikace pak může za běhu využívat různé cesty kódu v závislosti na úrovni vykreslování podporované hardwarem.

Funkce grafického hardwaru, které mají největší vliv na úrovně vykreslování, jsou:

  • Velikost paměti RAM videa na grafickém hardwaru určuje velikost a počet vyrovnávacích pamětí, které lze použít pro kompozitování grafiky.

  • Pixel Shader A pixel shader je grafická funkce pro zpracování, která počítá efekty na pixely. V závislosti na rozlišení zobrazené grafiky může být pro každý rámeček zobrazení potřeba zpracovat několik milionů pixelů.

  • Vertex Shader A vertex shader je grafická funkce pro zpracování, která provádí matematické operace s daty vrcholu objektu.

  • Podpora vícetextu podpory vícetextu odkazuje na schopnost použít dvě nebo více odlišných textur během operace prolnutí u 3D grafického objektu. Stupeň podpory vícetextu je určen počtem vícetextových jednotek na grafickém hardwaru.

Funkce shaderu pixelů, shaderu vrcholů a vícetextových funkcí se používají k definování konkrétních úrovní verzí Rozhraní DirectX, které se následně používají k definování různých úrovní vykreslování ve WPF.

Funkce grafického hardwaru určují schopnost vykreslování aplikace WPF. Systém WPF definuje tři úrovně vykreslování:

  • Vykreslování vrstvy 0 Bez hardwarové akcelerace grafického hardwaru Úroveň verze DirectX je menší než verze 7.0.

  • Částečná hardwarová akcelerace grafického hardwaru úrovně 1 vykreslování Úroveň verze DirectX je větší nebo rovna verzi 7.0 a nižší než verze 9.0.

  • Vykreslování vrstvy 2 Většina grafických funkcí používá hardwarovou akceleraci grafického hardwaru. Úroveň verze DirectX je větší nebo rovna verzi 9.0.

Další informace o úrovních vykreslování WPF naleznete v tématu Úrovně vykreslování grafiky.

Viz také