Lista zdarzeń grafiki
Lista zdarzeń grafiki w Visual Studio diagnostykę grafiki, aby poznać zdarzenia Direct3D, które zostały zarejestrowane podczas renderowania ramki gry lub aplikacji.
Jest to listy zdarzeń grafiki okna:
[!UWAGA]
Od wersji programu Visual Studio 2013 Update 3, diagnostyki grafiki narzędzia windows znajdują się w niezależne kopię powłoki programu Visual Studio.Ta dostosowana powłoka o nazwie analizy grafiki eliminuje niepotrzebne menu i opcji, ale w przeciwnym razie listy zdarzeń grafiki i przepływ pracy są takie same jak przed.Aby uzyskać więcej informacji na temat tej zmiany, zobacz Diagnostyka grafiki — Przegląd.
Przy użyciu listy zdarzeń
Po zaznaczeniu zdarzenia w przypadku listy, jego ma odzwierciedlone w informacji wyświetlanej przez inne narzędzia diagnostyczne grafiki; przy użyciu listy zdarzeń w połączeniu z narzędzia te można zbadać problem z renderowaniem w szczegółach w celu ustalenia jej przyczyny.Aby dowiedzieć się więcej o sposobie można rozwiązać problemy z renderowaniem przy użyciu listy zdarzenia oraz inne narzędzia diagnostyczne grafiki, zobacz Przykłady diagnostyki grafiki.
Wydajne za pomocą funkcji listy zdarzenia jest ważna do pobierania wokół ramek złożone, które mogą zawierać tysięcy zdarzeń.Na liście zdarzeń skutecznie, wybierz widok najlepiej pasuje do możesz, użyć wyszukiwania, aby filtrować listę zdarzeń, wykonaj łącza, aby dowiedzieć się więcej na temat obiektów Direct3D, które są skojarzone ze zdarzeniem, a za pomocą strzałki przycisków, aby przechodzić między Rysuj wywołań szybko.
Widoki listy zdarzeń
Lista zdarzeń obsługuje dwa różne widoki, organizowaniu zdarzeń grafiki na różne sposoby do obsługi swojego przepływu pracy i preferencji.Pierwszy widok jest rysuje wywołuje widoku której organizuje zdarzenia i jego skojarzony stan hierarchicznie.Drugi widok jest Widok osi czasu zdarzenia które organizuje w porządku chronologicznym, na liście prosty.
Rysować wywołania widoku
Wyświetla przechwycone zdarzenia i ich stan w hierarchii.Najwyższym poziomem w hierarchii składa się zdarzeń, takich jak rysuje wywołań, czyści, obecność i części dotyczącej widoków.W przypadku listy, można rozwinąć rysować wywołań, aby wyświetlić stan urządzenia, który został obowiązująca w momencie wywołania rysuje; i każdy rodzaj stanu, które mają być wyświetlane zdarzenia, które ustalają ich wartości można rozwinąć.Na tym poziomie możesz zobaczyć również czy określonym stanie zostały ustawione w poprzedniej ramki, czy została ustawiona więcej niż raz od czasu ostatniego rysować połączenia.Osi widoku
Wyświetla każdy przechwycone zdarzenia w porządku chronologicznym.W ten sposób organizowania listy zdarzeń jest taka sama, jak w poprzednich wersjach programu Visual Studio.
Aby zmienić tryb widoku listy zdarzeń
- W listy zdarzeń grafiki okna powyżej listę zdarzeń, zlokalizować widoku listy rozwijanej i wybrać opcję osi czasu widoku lub rysować wywołania widoku.
Filtrowanie zdarzeń
Można użyć pola wyszukiwania — znajdujący się w prawym górnym rogu listy zdarzeń grafiki okna — Aby filtrować listę zdarzeń, aby uwzględnić tylko zdarzenia, których nazwy zawierają określonych słów kluczowych.Można określić pojedynczy słów kluczowych, takich jak wierzchołku— jak poprzednie ilustracji — lub wiele słów kluczowych, korzystając z listy rozdzielone średnikami, takich jak rysowania;Pierwotny— zostanie dodana do zdarzeń, które mają albo Draw lub Primitive w nazwach.Podczas wyszukiwania jest cenne dla odstępu — na przykład VSSet i ustawić VS są różne wyszukiwania — tak upewnij się, że wyszukiwanie formularza uważnie.
Przechodzenia między wywołaniami draw
Ponieważ testowania oprogramowania Draw połączeń jest szczególnie ważny, można użyć Przejdź do następnego rysować połączenie i Przejdź do poprzedniego rysować połączenie przycisków — znajdujący się w lewym górnym rogu listy zdarzeń grafiki okna — na znalezienie i szybkie przechodzenie między wywołaniami rysuje.
Łącza do obiektów grafiki
Aby zrozumieć niektórych zdarzeń grafiki, może być wymagane dodatkowe informacje o bieżącym stanie urządzenia lub Direct3D obiektów, do których odwołuje się zdarzenie.Wiele zdarzeń zawierają łącza do tych informacji, które można wykonać, aby uzyskać więcej szczegółów.
Rodzaje zdarzeń oraz znaczniki zdarzenia
Zdarzenia, które są wyświetlane w przypadku listy są podzielone na cztery kategorie: Ogólne zdarzenia rysować zdarzeń, liczba grup zdarzeń zdefiniowanych przez użytkownika i znaczników zdarzenia zdefiniowaną przez użytkownika.Oprócz zdarzeń ogólnych każdego zdarzenia jest wyświetlany wraz z programem ikona wskazująca, który należy do kategorii.
Ikona |
Opis zdarzenia |
---|---|
(Brak ikony) |
|
|
|
|
|
|
Zdarzenia zdefiniowaną przez użytkownika
Zdarzenia zdefiniowaną przez użytkownika są specyficzne dla aplikacji.Można je do skorelowania istotnych zdarzeń, które występują w aplikacji z zdarzenia na liście Zdarzenie grafiki.Na przykład można utworzyć grupy zdarzeń zdefiniowanych przez użytkownika i zorganizować zdarzenia pokrewne — takich jak te, które są renderowane interfejsu użytkownika — w grupach lub w hierarchii, aby łatwiej można przeglądać listę zdarzeń, lub możesz utworzyć znaczniki, gdy niektóre rodzaje obiektów są rysowane tak, aby łatwo można znaleźć ich zdarzenia grafiki listy zdarzeń.
Aby tworzenie grup i znaczników w aplikacji, należy użyć tej samej interfejsów API, zapewniający Direct3D do użycia przez inne Direct3D narzędzi do debugowania.Poniższa tabela zawiera podsumowanie interfejsów API, które służy do tworzenia grup i znaczników w różnych wersjach programu Direct3D.
Opis interfejsu API |
ID3D11DeviceContext2 (Direct3D 11.2) |
ID3DUserDefinedAnnotation (Direct3D 11.1) |
Interfejs API D3DPerf_ rodziny (Direct3D 11.0 i starsze) |
---|---|---|---|
Rozpocznij grupę zdarzeń |
BeginEventInt |
BeginEvent |
D3DPerf_BeginEvent |
Zakończenie grupy zdarzeń |
EndEventInt |
EndEvent |
D3DPerf_EndEvent |
Utwórz zdarzenie znacznika |
SetMarkerInt |
SetMarker |
D3DPerf_SetMarker |
Można użyć któregokolwiek z tych interfejsów API, które obsługuje wersja aplikacji Direct3D — na przykład, jeśli są korzystających z interfejsu API 11.1 Direct3D, można użyć dowolnego SetMarker lub D3DPerf_SetMarker można utworzyć znacznika zdarzeń, ale nie SetMarkerInt ponieważ jego dostępne tylko w Direct3D 11.2 — a nawet można łączyć te, które obsługują różne wersje Direct3D razem w tej samej aplikacji.