Sdílet prostřednictvím


Zachycení informací grafiky

Můžete zachytit informace grafiky použitím Visual Studio nástrojů diagnostiky grafiky k diagnostice problémů vykreslování aplikace založené na rozhraní DirectX.

Grafické informace můžete zachytit ručně nebo programově.Chcete-li provést zachycení ručně, spusťte aplikaci z Visual Studio a poté klikněte na tlačítko Zachytávat snímky.Pokud chcete zachytávat programově, použijte zachytávání API, které je součástí Visual Studio ve zdrojovém kódu vaší aplikace k určení, kdy by snímky měly být zachyceny.

Můžete také zabránit zachycení grafických informací z vaší aplikace.

Ruční zaznamenání grafických informací

Pokud chcete ručně zachytit snímek informací grafiky ze spuštěné aplikace rozhraní Direct3D, použijte tlačítko Zachytit rámec.Pokud chcete zachytit více snímků, klikněte na tlačítko vícekrát.Než budete moci zaznamenat rámce ručně, musíte spustit aplikaci z Visual Studio a povolit Diagnostiku grafiky.

Visual Studio používá informace zachycené později k opětovné tvorbě zachycených snímků tak, že použijete nástroje diagnostiky grafiky k jejich podrobnému prozkoumání.

Spuštění aplikace s povolenou diagnostikou grafiky

  • Na panelu nabídky vyberte možnost Ladění, Grafika, Spustit diagnostiku.(Klávesnice: stiskněte klávesy Alt + F5)

Jakmile diagnostika grafiky zapojí aplikaci, můžete zaznamenat grafické informace pro libovolný požadovaný počet rámců.Při každém zahájení záznamu jsou zaznamenány události Direct3D, které nastanou během následujícího rámce, společně s objekty a prostředky Direct3D, které je podporují.Nahrávání začne okamžitě po prezentaci aktuálního snímku a končí, když je přítomen snímek, který chcete zachytit.

Zachycení snímku grafických informací

  • Na panelu nástrojů Diagnostika grafiky klikněte na tlačítko Zachytávat snímky.Ikona tlačítka digitalizace grafiky (Klávesnice: přejděte do aplikace a stiskněte klávesu Print Screen)

Při zachytávání prvního snímku Visual Studio vytvoří protokol grafiky k uchování informací.Do tohoto protokolu jsou přidány další zachycené rámce.Když zavřete dokument protokolu grafiky (.vsglog) v době, kdy je aplikace spuštěna, nelze zachytit žádné další rámce grafických informací, ale můžete i nadále ladit pomocí nástroje k ladění Visual Studio.Pokud chcete zachytit více informací grafiky, zastavte ladění aplikace a poté použijte k opětovnému spuštění aplikace příkaz Spustit diagnostiku.

Programové zaznamenání grafických informací

Někdy je nepraktické nebo nemožné spoléhat na ruční sběr shromažďování informací o vykreslování problému, který se pokoušíte vyřešit.Například, některé typy potíží mohou být příliš nespojité, než aby byly reprodukovatelné ručně, ale v podmínky programu, které je způsobují, mohou být známé; také můžete shromáždit grafické informace na systému, který nepodporuje ruční snímání, protože nepodporuje , jako je tomu v případě zařízení systému RT Windows.Pro tyto scénáře zahrnuje rozhraní API, které můžete programem volat k zachycení grafických informací do protokolu.Po dokončení spuštění programu můžete otevřít protokol grafiky v Visual Studio a zjistit problémy, které byly zaznamenány.

Informace o povolení programového sběr dat ve vaší aplikaci a nakonfigurování počítač, na kterém bude daný program spuštěn, naleznete zde: Názorný postup: Digitalizace programově grafické informace..

Ochrana před zachycením grafických informací

Před publikováním aplikace můžete zakázat Diagnostiku grafiky a jiné nástroje profilování, a zabránit tak uživatelům ve zjištění, jakým způsobem aplikace používá rozhraní API Direct3D.Tyto informace lze použít nedovoleným způsobem.Další informace naleznete v tématu Jak: zakázat Diagnostika grafiky ve vaší aplikace..

Dokumenty grafických protokolů

Dokumenty Grafických protokolů zaznamenávají grafické informace, které jsou shromažďovány během relace Diagnostiky grafiky.Relaci zachycení lze zahájit ručně nebo programově.Protokoly grafiky obsahují jeden nebo více snímků, které byly sebrány z aplikace spuštěné v grafické rozhraní DirectX.Pro každý zachycený snímek je zaznamenána každá Direct3D událost, která nastala během záznamu snímku.To zahrnuje podporu událostí rozhraní Direct3D, k nimž došlo předtím – například tvorbu grafických zařízení – a podpůrných shaderů, modelů, textur a dalších grafických prostředků.Protože každý protokol grafiky je samostatný, můžete tyto rámce znovu kdykoli postupně vytvořit bez externích informací nebo odkazů.Protokoly grafiky můžete sdílet a zkontrolovat problémy v jiném počítači, než je ten, který byl použit k zachycení dat nebo vývoji kódu.Můžete také zkoumat staré protokoly grafiky, i když při vývoji byly změněny modely a textury.Při použití diagnostiky grafiky k diagnostice problémů s grafikou můžete zkoumat jakákoli volání rozhraní Direct3D API a její přidružený přidruženém stav, jednotlivé vrcholy ve vyrovnávací paměti a dokonce jak jsou jednotlivé pixely jsou ovlivněny voláními draw.

[!POZNÁMKA]

Přestože protokol grafiky interně zachycuje většinu relevantních informací, jsou vyžadovány další informace pro plné využití některých funkcí Diagnostiky grafiky.Například, pro plné využití funkce vyvolání grafického zásobníku máte také soubor databáze programu (.pdb) a zdrojový kód aplikace. Pro ladění zdrojovém kódu shaderu HLSL musíte také mít zdrojový kód shaderu (pokud je shader sestaven pomocí kompilátoru shaderu D3D11.1 a informace o ladění je povoleno, pak zdrojový kód shaderu bude vložen do protokolu grafiky během digitalizace).

[!POZNÁMKA]

Můžete extrahovat, upravovat a ukládat kopie mřížek a textury z protokolu grafiky pomocí grafických nástrojů, které jsou součástí Visual Studio.Obsah protokolu grafiky však není těmito změnami ovlivněn.Informace o těchto nástrojích grafiky naleznete zde: Práce s 3D aktiv pro hry a aplikace.

Viz také

Úkoly

Jak: zakázat Diagnostika grafiky ve vaší aplikace.

Názorný postup: Digitalizace ručně grafické informace.

Názorný postup: Digitalizace programově grafické informace.