Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ších faktorů při určování výkonu WPF je to, že je vázán na vykreslování—čím více pixelů musíte vykreslit, tím vyšší jsou náklady na výkon. Čí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+.
Pipeline pro 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. Přechod na software je plynulý, kdykoli není možné vykreslit funkce aplikace pomocí hardwarového renderovacího kanálu.
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í.
Úrovně 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:
Video RAM Velikost paměti 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 Pixelový shader je grafická funkce, která zpracovává efekty na úrovni jednotlivých pixelů. 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 Vertexový shader je grafická funkce, která provádí matematické operace nad daty vrcholu objektu.
Podpora vícetextur Podpora vícetextur 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 pixelového shaderu, vertexového shaderu a multitexturových funkcí se používají k definování konkrétních úrovní verzí 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 Žádná hardwarová akcelerace grafického hardwaru. Úroveň verze DirectX je menší než verze 7.0.
Vykreslování úrovně 1 částečné akcelerace grafického hardwaru. Úroveň verze DirectX je větší nebo rovna verzi 7.0 a menší než verze 9.0.
Rendering Tier 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 vrstvách vykreslování WPF najdete v tématu vrstvy vykreslování grafiky.
Viz také
.NET Desktop feedback