Přehled diagnostiky grafiky
Diagnostika grafiky umožňuje ladění chyb při vykreslování her a aplikací DirectX.
Visual Studio 2013 požadavky
Použití grafického diagnostické údaje v Visual Studio 2013, musí mít jeden z těchto edicích:
Visual Studio 2013 Ultimate
Visual Studio 2013 Premium
Visual Studio 2013 Professional
Visual Studio 2013 Express for Windows
[!POZNÁMKA]
Visual Studio 2013 Express pro Windows Desktop nepodporuje grafické diagnostických funkcí.
Požadavky na operační systém a sadu SDK
Windows Software Development Kit (SDK) Pro Windows 8.1 nainstaluje komponenty modulu runtime, vyžadovaných grafické diagnostiky a podporuje vývoj pro Windows 8.1 a Windows 8.Použít grafické Diagnostika na Windows 7 a Windows Vista, je nutné nainstalovat jeden z následujících sady SDK:
Windows SDK (verze 7.1)
DirectX SDK (červen 2010)
Kompatibilita verzí DirectX
Diagnostika grafiky podporuje aplikace používající rozhraní Direct3D 10, Direct3D 10.1, Direct3D 11, Direct3D 11.1 a Direct3D 11.2 a poskytuje omezenou podporu pro aplikace, které používají rozhraní Direct2D.Nepodporuje aplikace, které používají starší verze rozhraní Direct3D, DirectDraw nebo jiné grafické rozhraní API.
Windows 8.1 a Direct3D 11.2
V Windows 8.1, DirectX 11.2 přináší nové funkce, které zahrnuje podporu pro zachycování informací grafické prostřednictvím jeho za běhu.Windows 8.1 využívá novou sběr dat na základě runtime – označované jako robustní zachycení– výhradně pro všechny verze rozhraní DirectX, Windows 8.1 podporuje.Robustní zachycení také podporuje nové funkce Direct3D 11.2.
Podpora pro Windows 8 a Windows 7
Vzhledem k tomu, že předchozí verze systému Windows nepodporuje DirectX 11.2, robustní sběr dat není k dispozici na těchto platformách.Místo toho, aplikace běží na Windows 8 nebo Windows 7 použít metodu předchozí, na základě náhradního procesu zachycení označované jako starší verze zachycení.Vzhledem k tomu, že není nutné pro její podporu na Windows 8.1, je zastaralý zachycení, je však stále k dispozici pro podporu aplikace běží na starší verzi Windows 8 nebo Windows 7.
Omezená podpora rozhraní Direct2D
Protože Direct2D je rozhraní API uživatelského režimu, které navazuje na Direct3D, můžete Diagnostiku grafiky použít k ladění problémů s vykreslováním v aplikacích, které využívají Direct2D.Protože jsou však zaznamenány pouze základní události rozhraní Direct3D namísto událostí rozhraní Direct2D na vyšší úrovni, události Direct2D se na seznamu událostí grafiky nezobrazí.A protože vztah mezi událostmi rozhraní Direct2D a výslednými událostmi rozhraní Direct3D není vždy jasný, použití Diagnostiky grafiky k ladění problémů s vykreslováním v aplikacích, které používají Direct2D, není vždy přímočaré.Nadále můžete Diagnostiku grafiky použít k získání informací o problémech s vykreslováním na nízké úrovni v aplikacích, které používají rozhraní Direct2D.
Změny uživatelského rozhraní v aplikaci Visual Studio 2013 Update 3
Spuštění v aplikaci Visual Studio 2013 Update 3, windows nástroj pro diagnostiku grafické jsou umístěny v nezávislá kopie prostředí sady Visual Studio omezit počet nástroje systému windows konkurenci pro omezený prostor v hlavním rozhraní IDE sady Visual Studio.Vlastní prostředí je nyní hostitelem grafické diagnostické nástroje, volá analýzy grafické Visual Studio, eliminuje nabídky a možnosti, které nejsou potřebné diagnostiky grafiky, v opačném případě jsou podobné grafické diagnostiku v předchozích verzích sady Visual Studio grafické diagnostické nástroje a pracovní postupy, ale.
Existují dvě podstatné rozdíly:
Při spuštění aplikací v grafickém diagnostiku Visual Studio již zobrazí živé verzi protokolu dokumentu grafiky.Namísto toho Visual Studio poskytuje nové zachycení rozhraní.Zde je nové zachycení rozhraní vypadá jako:
Z tohoto rozhraní můžete zachytit jeden nebo více snímků do protokolu grafiky a zobrazit v reálném čase grafy zobrazují míry rámec vaší aplikace, stejně jako čas v milisekundách, která přebírá každého rámce k vykreslení.
Nelze upravit kód v grafickém analýzy prostředí; Pokud otevřete kódu pro úpravy v grafickém analýzy, bude otevřen v hlavní Visual Studio IDE a aktivován.
Toto rozhraní je v tématu v sadě Visual Studio.Chcete-li spustit sadu Visual Studio grafické analýzy, zvolte jednu z snímky pomocí následujících rámec... propojení nad miniaturu obrázek nebo dvakrát klikněte na miniaturu.
Použití Diagnostiky grafiky k ladění problémů s vykreslováním
Ladění problémů s vykreslováním v aplikaci s bohatou grafikou není tak přímočaré jako spuštění ladicího programu a krokování kódu.V každém snímku jsou produkovány stovky tisíc jedinečných pixelů podle komplexní sady stavu, dat, parametrů a kódu. Z těchto pixelů může problém, který chcete diagnostikovat, vykazovat pouze několik málo pixelů.A aby věci byly ještě složitější, kód, který generuje každý pixel, je spouštěn na specializovaném hardwaru, který paralelně zpracovává stovky pixelů.Tradiční nástroje a techniky ladění, které je obtížné využít i v kódu s malým počtem vláken, jsou v případě velkého množství dat neúčinné.
Nástroje pro diagnostiku grafiky v Visual Studio jsou navrženy tak, abychom vám najít vykreslování potíže počínaje visual artefakty, které mohou ukazovat problém a poté trasování zpět do zdroje problému se zaměříte pouze v kódu relevantní shaderu, kanálu fáze, kreslení volání, materiály a stav zařízení – ve zdrojovém kódu aplikace vlastní.
Zde jsou některé druhy vykreslení problémy, který Visual Studio vám může pomoci vyřešit.
Stav zařízení
Správná konfigurace zařízení grafiky je důležitá, protože určuje, jak zřetězení grafiky interpretuje data přidružená ke každému volání draw, a postup slučování výstupů volání draw.Například pokud stav zařízení určuje pořadí vinutí vrcholu ve směru hodinových ručiček, pak všechny modely, které určují vrcholy v pořadí proti směru hodinových ručiček, nebudou vykresleny správně.Problémy se stavy zařízení může být obtížné diagnostikovat, protože základní příčina problému ve zdrojovém kódu je často vzdálena od dotčených objektů.Pomocí Diagnostiky grafiky můžete kdykoli během vykreslování zobrazit aktuální stav zařízení.Neinicializované nebo nesprávné vyrovnávací paměti konstant a parametry
Grafické aplikace používají vyrovnávací paměti konstant k předání dalších dat k volání draw nebo sadě volání draw.Data mohou například určovat různá umístění nebo vzhledy pro různé objekty.Když tato data nejsou inicializována nebo obsahují nesprávné hodnoty, odpovídající objekt je vykreslen nesprávně, nebo možná vůbec.Tento druh problému může být obtížné diagnostikovat, protože není vždy jasné, zda je problém v datech nebo kódu shader, který je spotřebovává.Také může být obtížné určit, které shadery, vyrovnávací paměti konstant a parametry odpovídají chybě.Diagnostiku grafiky můžete použít k určení, které shadery, vyrovnávací paměti konstant a parametry platí pro každé volání draw, a zobrazit jejich obsah.Chyby shaderu
To, že uděláte chybu v kódu aplikace, je téměř nevyhnutelné, ať už se jedná o kód jazyka C++ nebo HLSL (High Level Shader Language).Ladění kódu HLSL je však tradičně obtížnější, protože nemá tak bohatou podporu ladění jako C++ a další jazyky.Diagnostika grafiky přináší pro HLSL tradiční nástroje pro ladění kódu, takže můžete krokovat kód, nastavit zarážky a zkontrolovat obsah proměnné, parametry a vyrovnávací paměti konstant.
Princip Diagnostiky grafiky
Chcete-li použít Diagnostiku grafiky, je nejprve nutné zaznamenat informace o tom, jak aplikace při běhu používá rozhraní API Direct3D, a poté zkontrolovat zaznamenané chování.Pro určené snímky zahrnují zaznamenané informace volání rozhraní API, například ta, která vymažou obrazovku, kreslí geometrii, odesílají výpočetní shadery nebo mění stav zařízení grafiky – spolu s jejich argumenty a kopiemi vyrovnávacích pamětí a objekty, které jsou nepřímo odkazovány.Před vykreslením snímků jsou také zaznamenána volání API týkající se nastavení a inicializace.Informace, které je zaznamenána je zapsán do grafické protokolu soubor (.vsglog).
Přehráním událostí grafiky na vývojovém počítači nebo na vzdáleném počítači či zařízení můžete znovu vytvořit chování vykreslování zaznamenané v protokolu grafiky.Počítač pro přehrávání může být stejný počítač nebo zařízení, ve kterém byl protokol grafiky původně zachycen, nebo jiný.U většiny funkcí přehrávání se hardware grafiky zařízení pro přehrávání používá k přehrání událostí grafiky, ale pokud se používá ladicí program HLSL, kód shaderu je vždy přehrán pomocí emulované GPU v procesoru.Pomocí emulované GPU můžete krokovat kódem shaderu, kontrolovat proměnné a používat jiné běžné funkce ladění bez ohledu na to, zda grafický hardware v počítači pro přehrávání podporuje ladění hardwaru.
[!POZNÁMKA]
Přestože protokol grafiky interně zachycuje většinu relevantních informací, pro plné využití některých funkcí Diagnostiky grafiky jsou vyžadovány další informace.Například chcete-li plně využít funkci zásobníku volání grafiky, potřebujete také soubor programové databáze (.pdb) a zdrojový kód aplikace.Chcete-li ladit kód shaderu HLSL, potřebujete také zdrojový kód shaderu.(Pokud je shader kompilován pomocí kompilátoru shaderu D3D11.1 a jsou povoleny informace o ladění, je zdrojový kód shaderu během zachycování vložen do protokolu grafiky.)
[!POZNÁMKA]
Vzhledem k tomu, že určitých rozhraní API nemusí být k dispozici v předchozích verzích systému Windows nebo DirectX, nelze přehrát grafické protokoly, které zachyceny tyto volání rozhraní API pro přehrávání počítače, ve kterém je nepodporuje.
Protokoly grafiky
Protokol grafiky obsahuje jeden nebo více snímků, které byly zachyceny z aplikace spuštěné v grafickém rozhraní DirectX.Protože protokol grafiky je samostatný, můžete tyto snímky kdykoli později znovu vytvořit bez externích informací nebo odkazů.To znamená, že protokoly grafiky můžete sdílet s jinými vývojáři, zkoumat problémy na různých počítačích a kontrolovat staré protokoly grafiky, když během vývoje došlo ke změně modelů a textury.Můžete také současně načíst více protokolů grafiky (soubory .vsglog) a porovnat výsledky vykreslování dat.
Otevření souboru protokolu grafiky (vsglog)
V Visual Studio, v nabídce, zvolte soubor, Open, soubor.Zobrazí se dialogové okno Otevřít soubor.
Zadejte soubor protokolu (.vsglog) grafické otevřete a poté zvolte Otevřete tlačítko.
[!POZNÁMKA]
Můžete extrahovat, upravte a uložte kopie mřížky a textury z protokolu grafiky pomocí grafické nástroje, které jsou součástí Visual Studio.Obsah protokolu grafiky však není těmito změnami ovlivněn.Informace o těchto grafické nástroje, naleznete v části Práce s 3D prostředky pro hry a aplikace.
Panel nástrojů Grafika
Panel nástrojů Grafika poskytuje rychlý přístup k příkazům a oknům nástrojů Diagnostiky grafiky.
Spustit Diagnostické nástroje tlačítko spouští aplikací v grafickém diagnostiky.Při spuštění aplikace v grafickém diagnostiky, zachytit další vykreslené snímek tlačítko je povoleno, a ostatní tlačítka umožňuje zobrazit různé nástroje systému windows.Další informace o tom, jak spusťte aplikaci v části informace o grafickém grafické diagnostiku a sběr dat, naleznete v Zaznamenání grafických informací.
Okna nástrojů Diagnostiky grafiky
Následující obrázek ukazuje typické rozvržení oken nástrojů, které slouží ke kontrole a ladění zachycených snímků.Každé okno obsahuje jinou kategorii informací o zachyceném snímku, který je kontrolován, a o jednotlivých pixelech ve snímku.
Použití Dokument grafických protokolů okno k identifikaci vykreslování problémů, které vás zajímají.
Použití Seznam událostí grafiky k identifikaci události, které se vztahují k vykreslení problém.
Použití Fáze zřetězení grafiky okno k identifikaci fáze kanálu, kde vykreslování problému se zobrazí jako první.
Použití Zásobník volání událostí grafiky k nalezení kód aplikace, který má vztah k problému, vykreslování.
Použití Historie pixelů grafiky k prohlédnutí podrobností o událostech, které mají vliv na konečnou barvu jeden bod.
Použití Tabulka grafických objektů Chcete-li zobrazit podrobnosti o objekty, které se vztahují k vykreslení problém.
Ovládací panel rozhraní DirectX
Ovládací panel rozhraní DirectX je součástí rozhraní DirectX, které můžete použít ke změně způsobu, jakým se rozhraní DirectX chová – například povolit verzi ladění runtime komponent rozhraní DirectX a výběr druhu zpráv ladění, které jsou zaznamenány, a zakázat použití určitých funkcí hardwaru grafiky k emulaci hardwaru s méně funkcemi.Tato úroveň kontroly nad rozhraním DirectX vám může pomoct ladit a testovat vaši aplikaci DirectX.Ovládací panel rozhraní DirectX zobrazíte ze sady Visual Studio.
Otevření ovládacího panelu rozhraní DirectX
- V nabídce, zvolte ladění, grafické, DirectX ovládací panely.