Seznam událostí grafiky
Seznam událostí grafiky, což je jeden z nástrojů diagnostiky grafiky v Visual Studio, vám mohou pomoci prozkoumat událost Direct3D, které nastaly během určitého snímku hry nebo aplikace a analyzovat jejich účinky.To zahrnuje podporu událostí, jako je vytváření zařízení nebo objektu.
Toto je Seznam událostí grafiky:
Procházení seznamu událostí grafiky
Protože mnoho událostí Direct3D lze generovat pouze jako jeden rámec typické hry nebo aplikace, Seznam událostí grafiky obsahuje funkce, které vám pomohou rychle najít důležité události a související informace.
Aby byl snížen počet nezajímavých událostí Seznamu grafických událostí, jsou vynechány události AddRef a Release a můžete události filtrovat podle názvu, buď postupně – jak je znázorněno na předchozím obrázku, kde je filtrováno zobrazení událostí, které mají v názvu Vertex – nebo pomocí seznamu klíčových slov oddělených středníkem – například "Draw;Primitivní", pokud chcete zobrazit události, které mají v názvech buď Draw nebo Primitive.
[!POZNÁMKA]
Seznam filtrů rozlišuje mezery – například "kreslení;Primitivní"a"kreslení; Primitivní"liší.
Protože pokyny Draw jsou zvláště důležité události, Seznam událostí grafiky poskytuje tlačítka Přejít na další pokyn k vykreslení a Přejít na předchozí pokyn k vykreslení, která se nacházejí v levém horním rohu okna, takže je můžete rychle najít a procházet mezi nimi.
Kategorie událostí
Události, které jsou zobrazeny v okně Seznam událostí grafiky jsou organizovány do čtyř kategorií; tři představují jednotlivé události a čtvrtá slouží k seskupení souvisejících událostí.Každá událost je zobrazena společně s ikonou, která označuje kategorii, do které patří.
Kategorie |
Description |
---|---|
Kreslení událostí |
Označí draw událost, která nastala sebraných rámců. |
Událost před snímkem |
Označuje událost, k níž došlo před zachycením snímku—například vytvoření zařízení nebo objektu. |
Uživatelem definované události značky nebo skupiny |
Označí jedné události nebo skupinu souvisejících událostí, jak jsou definovány aplikací.Skupiny lze rozbalit a zobrazit události, které obsahují. |
Události ve snímku a před snímkem jsou integrovány do modulu runtime rozhraní Direct3D a odpovídají volání rozhraní API Direct3D.K povolení těchto událostí není třeba provádět žádné akce.
Uživatelem definované události a skupiny jsou specifické pro konkrétní aplikace.Uživatelem definované události můžete použít k označení významných událostí, které se vyskytují ve vaší aplikaci, takže je můžete porovnat s událostmi grafiky v Seznamu událostí grafiky.Například, můžete použít značky při kreslení konkrétního objektu, takže můžete poté snadno najít jeho volání kreslení v Seznam událostí grafiky.Události uživatelem definovaných skupin lze uspořádat do skupin nebo hierarchií souvisejících událostí, takže můžete procházet Seznam událostí grafiky snadněji.Například můžete seskupit události týkající se vykreslování rozhraní.
Pokud chcete ve vaší aplikaci vytvořit uživatelem definované značky události a uživatelem definované skupiny události, použijte stejné rozhraní API, jako rozhraní Direct3D používá k označení událostí a skupin pro použití v jiných nástrojích Direct3D.V rozhraní Direct3D 11.1 patří rozhraní API doID3DUserDefinedAnnotation rozhraní; pro starší verze rozhraní Direct3D použijte D3DPERF_ rozhraní řady API.
Popis API |
Rozhraní API (Direct3D 11.1) |
Rozhraní API (Direct3D 11.0 a starší) |
---|---|---|
Zahájení uživatelem definované skupiny událostí |
ID3DUserDefinedAnnotation::BeginEvent |
D3DPerf_BeginEvent |
Ukončení uživatelem definované skupiny událostí |
ID3DUserDefinedAnnotation::EndEvent |
D3DPerf_EndEvent |
Vytvoření uživatelem definované značky události |
ID3DUserDefinedAnnotation::SetMarker |
D3DPerf_SetMarker |
Odkazy na grafické objekty
Pokud chcete pochopit události grafiky, bude pravděpodobně nutné získat další informace o aktuálním stavu zařízení nebo objektech Direct3D, které odkazují na událost.Seznam událostí grafiky poskytuje odkazy na tyto informace pro každou událost.
Používání Seznamu grafických událostí k vyhledání problémů s vykreslováním
Pomocí okna Seznam událostí grafikyspolečně s dalšími nástroji Diagnostiky grafiky můžete ukázat na problémy vykreslování pro určitou událost Direct3D.Po identifikaci události, při které se objeví problém nejdříve, můžete určit příčinu problému ostatními nástroji diagnostiky grafiky.
Při problémech s renderováním, kdy chybí objekt (což znamená, že se objekt zobrazuje, kde ho nečekáte), můžete použít Seznam událostí grafiky společně s oknem Spojení fází grafiky.Když vyberete událost Draw nebo Dispatch v seznamu událostí, okno Fáze kanálu grafiky zobrazí efekt události v každé fázi kanálu.Procházením těchto událostí a sledováním fází kanálu můžete zjistit, kdy byl objekt vykreslen, přestože není zobrazen v cíli vykreslení.
Lépe porozumět potížím s vykreslením, v nichž je objekt vykreslen nesprávně – to znamená, že objekt je k dispozici, ale má nesprávný vzhled – můžete použít Seznam událostí grafiky prozkoumat události, které jsou zachyceny v dokumentu protokolu grafiky.Když vyberete Draw nebo Dispatch událost v seznamu událostí, Visual Studio zobrazí cíl vykreslení existoval při vyvolání události.Krokování těchto událostí a sledování, jak se změní cíl vykreslení v grafickém okně Protokol dokumentu, můžete sledovat vliv zvláštní události a tím pochopit, jak byl cíl výsledné vykreslení sestaveny pomocí mnoha událostí – někdy vykreslování použitá událostmi, jak různé interakce cíl vykreslení.