Die Neugier des Geistes und der Wunsch zu wissen, wie alles von innen funktioniert, unterscheidet den Technikfreak von der Masse der Benutzer. In diesem kurzen Beitrag möchte ich der neugierigen Community kleine Videos und ein kurzes Rezept für die Verwendung von Profiling-Software für 3D-Anwendungen vorstellen.
Haftungsausschluss3D , , . . 3D . . ( ) — . .
, . .
- , «» «»
Sehen Sie sich das Video an und lesen Sie es dann.Wenn wir also bewerten möchten, wie die Vorbereitung des Spielrahmens erfolgt. Welche Geometrie, Texturen, wie viele Aufrufe zum Zeichnen, wo tritt der Leistungsabfall auf? Sie können spezielle Software verwenden, um diese Prozesse zu debuggen.Ich werde die wichtigsten auflisten:- Renderderoc
- Nvidia nsight
- GPUperfStudio
RenderDoc ist ein grafischer Debugger von Crytek.
(Im Screenshot die Büste von Lara Croft aus dem letzten Teil: Aufstieg desGrabreiters ) Support DirectX 11/12, Vulkan, OpenGL 3.2+
Dies ist ein Open Source-Projekt. Wird regelmäßig durch neue Commits unterstützt.→ Link zum Repository und zur DokumentationDie Oberfläche ist sehr flexibel und intuitiv einfach. In 5 Minuten ist es für eine fragende Seele nicht schwierig, herauszufinden, wie ein Spiel oder eine Anwendung gestartet und der gesamte Renderprozess durchlaufen werden kann. Das Starten von Anwendungen von Drittanbietern ist nicht erforderlich.Geben Sie den Pfad zu exe, zusätzliche Parameter und die Ausführung an. Als nächstes drücken Sie in der Anwendung zum richtigen Zeitpunkt F12 oder PrintScrn. RenderDoc speichert einen Frame, der gespeichert werden kann, und kehrt zu ihm zurück, auch ohne das Spiel zu starten oder mit einem Partner zu teilen.Sie können beispielsweise Geometrie und Texturen exportieren.
Nvidia Nsight ist ein Debugging-Tool von NVIDIA.
Ein großartiges und sehr leistungsfähiges Debugger-Tool. Dies ist nicht das einzige Werkzeug im Nvidia-Arsenal. Es gibt Tools für mobile Anwendungen, Linux, Mac-Geräte usw. In all ihrer Vielfalt habe ich nicht verstanden. Nsight sollte zusammen mit Visual Studio verwendet werden. Für einen schnellen Start können Sie es jedoch ohne die installierte Microsoft IDE versuchen.Wir registrieren uns kostenlos im Nvidia Developer Program und laden die erforderlichen Tools in aller Ruhe herunter. Auf der Nvidia-Website finden Sie Dokumentationen und Erklärvideos zur Verwendung der Tools.Ziehen Sie zum Starten einfach die Anwendungsverknüpfung auf die Nvidia Nsight-Verknüpfung. Und wenn alles korrekt ist, sehen Sie HUD'y und Grafiken von Nsight.Der Rahmen ist einfach: Drücken Sie STRG + Z und dann die Leertaste oder die Taste mit dem Lupensymbol. Der Vorgang wird gestoppt und das Nsight Replay-Fenster wird geöffnet. Am unteren Rand befindet sich eine Zeitleiste mit einem Schieberegler. Nsight hat Tipps und die Oberfläche ist ziemlich einfach. Es ist auch möglich, das gesamte Rendering des Frames in einer Datei zu speichern. Zum Öffnen müssen Sie jedoch noch Visual Studio installieren.
Um tiefer in den Prozess einzusteigen, müssen alle Manipulationen von VS aus vorgenommen werden. Starten Sie entweder die 3D-Anwendung von VS oder starten Sie den gespeicherten Frame (die Funktion zum Speichern des Zugriffs und ohne installiertes VS).Erstellen Sie ein leeres Projekt:
Suchen Sie eine Schaltfläche, in der wir den Pfad zur Anwendung und einige erforderliche Einstellungen eingeben.
Und danach beginnen wir mit dem Debuggen. Die Anwendung wird geöffnet. Wenn ein Lader verwendet wird, müssen Sie möglicherweise nur den gewünschten Prozess im Fenster auswählen.
Der Prozess ist der gleiche wie oben beschrieben. Jetzt eröffnet VS zusätzliche Debugging-Funktionen, die beim Debuggen ohne VS nicht verfügbar sind. Sowohl Geometrie als auch Texturen und Shader. Sie können Prozesse aus verschiedenen Blickwinkeln analysieren.
Nsight bietet außerdem eine nützliche Killer-Funktion: Sie können die Anwendung mit dem Server auf einem dedizierten Computer ausführen und von VS aus eine Verbindung herstellen. Daher muss nicht jeder dieselbe Umgebung mit der Anwendung bereitstellen, was das Leben des Entwicklers oder Entwicklungsteams vereinfacht.Um mit gespeicherten Frames zu arbeiten, öffnen Sie einfach das gespeicherte Projekt für Ihre Version von Visual Studio, kompilieren Sie den Release-Build und aktivieren Sie das Nsight-Debugging. Weiter wie oben beschrieben.Übrigens. Nicht verstanden, ob es möglich ist, die gesamte Geometrie des Laufs in Nsight zu betrachten, wie dies in RenderDoc der Fall ist? Dies ist sehr praktisch, wenn Sie einen bestimmten Draw-Aufruf mit Gittern aus früheren Aufrufen anzeigen.Außerdem konnte ich den Betrieb der Software auf der Grafikkarte von AMD mangels letzterer nicht überprüfen. Aber es scheint, dass Nvidia in dieser Angelegenheit keine strengen Anforderungen hat.GPU PerfStudio - Entwicklung durch Advanced Micro Devices (AMD)
Ein wunderbares und mächtiges Werkzeug. Es kann auch remote debuggen.→ Download- und Dokumentationslink.
Es ist einfach zu bedienen. Es gibt 2 Versionen des Servers (64 und 32 Bit) zum Starten. Ziehen Sie einfach die erforderliche Anwendung auf den Server. Was er selbst fragen wird, wenn Sie versuchen, es auszuführen.
Schalten Sie als Nächstes den Client ein. Wir stellen eine Verbindung zum Server her, halten zur richtigen Zeit an und können jetzt alles tun, was wir zuvor in RenderDoc oder Nvidia Nsight getan haben.Umfassende Unterstützung für verschiedene APIs und Geräte. Trotz seiner Herkunft unterstützt es meine Nvidia-Grafikkarte. Also keine Verschwörungen und Stöcke im Rad ...UPD Die Kommentare deuteten auf ein anderes Open-Source-Tool hin.ApitraceMultiplattform und Unterstützung verschiedener APIs. Ich habe es noch nicht gespürt, aber laut lieff ein nützliches und einfaches Werkzeug.
Welches Tool das beste ist, kann ich nicht sagen. Jedes hat einige seiner eigenen Mini-Funktionen, Tabellen und Grafiken, die Informationen enthalten können, die für eine bestimmte Aufgabe sehr wichtig sind. Auf der Benutzerseite, eine neugierige Person, bin ich irgendwie mehr mit RenderDoc "passiert". Aber manchmal können nicht alle Prozesse darin gestartet werden.Übrigens über das Starten von Prozessen. Alles ist sehr einfach und unkompliziert, wenn Sie Anwendung A und Tool B haben. Dann startet Tool B Anwendung A und alle sind glücklich. Aber wenn es Vermittler in diesem Schema gibt: Trägerraketen, Anti-Cheat-Software und andere Wrapper, dann müssen Sie ein wenig tanzen.Betrachten Sie ein Beispiel für das Starten eines Spiels über Steam oder Origin und andere Dienste.In diesem Fall müssen Sie in jedem Toolkit ein bestimmtes Verfahren einhalten:- Deaktivieren Sie alle Arten von In-Game-Overlay-Funktionen für Steam, Origin, Uplay usw.
- Vor dem Start müssen diese Anwendungen ausgeschaltet sein.
- Sie müssen nicht die Spieldatei ausführen, sondern einen Wrapper (Steam, Origin, Uplay usw.)
- Danach können Sie das Spiel direkt vom laufenden "Wrapper" aus starten.
- Oft sind zusätzliche Startoptionen erforderlich. Für Watch Dogs 2 wird beispielsweise der Parameter -eac_launcher verwendet, um Anti-Cheat zu deaktivieren. Hier müssen Sie Readme lesen, Konfigurationen für Hinweise. Darüber hinaus beschleunigen zusätzliche Optionen den Startprozess der Anwendung. Steam-Beispiel: -applaunch 99999 (App-ID)
- Überprüfen Sie immer die Version der API in der Anwendung. Möglicherweise ist DX12 in den Einstellungen aktiviert, wird jedoch von Ihnen usw. nicht unterstützt. Machen Sie Voreinstellungen, schließen Sie das Spiel und beginnen Sie erst dann mit dem Debuggen.
- Einige Anwendungen sind auf multigraphischen Systemen nicht stabil (z. B. eingebettetes Video + diskrete Karte). Deaktivieren Sie unnötig im Geräte-Manager. In diesem Fall ist es außerdem besser, die Aufnahme des Frames und nicht das laufende Spiel zu debütieren. Weil Im Falle eines Zusammenbruchs wird die Qual neu gestartet.
Die versprochenen Videos für einen Snack. Ich nehme Zeitraffervideos über den Prozess des Renderns eines Frames eines Spiels auf. Ich finde es sehr unterhaltsam, informativ und schön. Nicht alle Ereignisse werden im Video als angezeigt in diesem Fall wäre es zu zuckend.PubgSchlachtfeld 1GTA V.Aufstieg des GrabreitersHexer 3Wachhunde 2Fallout 4Über Draw CallsUnd das ist alles. Ich hoffe, dieses Material wird den Leser beeindrucken, Ihnen sagen, helfen oder auf andere positive Weise beeinflussen. Senden Sie Änderungen, Tipps, Dank und Tritte an die PM oder Kommentare.Und zum Schluss möchte ich meinen Youtube-Kanal ein wenig veröffentlichen: www.youtube.com/KakoytoAitishnikDies ist natürlich eine schlechte Idee für die Gictimes, aber all diese sozialen Gizmos: Abonnements, Likes und Kommentare erhöhen die Motivation für die Veröffentlichung neuer und besserer Inhalte.