Seite 1 von 1

Visual Trace/Debugging

Verfasst: 18.10.2012, 22:16
von adapto
Hallo *,

hat jemand eine Idee wie ich am besten visualisiert Debuggen kann. Also zB wenn ich ein Objekt rendere moechte ich das zuerst nur Polygon 1 dargestellt wird, dann 2, dann 3... Ich verstehe noch nicht wie am besten aus der Render-Loop herausspringen kann um dann den aktuellen Status zu zeichnen um dann wieder in die Render-Loop hineinzuspringen um dort weiter zu machen. Gibt es dafuer evtl eine API oder andere Hilfen?

Danke und Gruss,
adapto

Re: Visual Trace/Debugging

Verfasst: 18.10.2012, 22:20
von Schrompf
Entweder PIX oder NVidia NSight. Letzteres integriert sich prima in Visual Studio, hat aber sein eigenes Rudel Macken.

Re: Visual Trace/Debugging

Verfasst: 18.10.2012, 22:36
von adapto
Danke. Ich werde die Programme ausprobieren.
Ich benutze uebrigens OpenGL und habe eine ATI Karte. Ich weiss nicht ob es eine Rolle spielt bei den Anwendungen. Allerdings waere es mir lieber, wenn ich eine API finden wuerde die sowas macht und die ich selbst aufrufen kann aus meinem Code um zB bestimmte Polygone zu markieren usw.

Re: Visual Trace/Debugging

Verfasst: 18.10.2012, 23:02
von eXile
Primitive lassen sich nicht einzeln, hintereinander anzeigen; sondern sie werden immer in einem Rutsch gerendert. Allerdings kann man die einzelnen Draw-Calls durchsteppen.

PIX funktioniert nur mit Direct3D; Nvidia Nsight bietet den vollen Feature-Umfang nur mit Direct3D und zwei voneinander getrennten Rechnern. Beispielsweise gibt es unter Nsight für OpenGL kein Shader-Debugging, kein Frame-Profiling und keine Pixel-History.

Ich glaube, du wirst mit dem gDEBugger und dem GPU PerfStudio 2 glücklicher werden.

Re: Visual Trace/Debugging

Verfasst: 18.10.2012, 23:29
von adapto
Danke. Die beider Tools sehen vielversprechend aus, und ich werde sie morgen frueh testen.
Ich muss nochmal auf das "durchsteppen" der Draw-Prozedur zurueckkommen. Gibt es keine Moeglichkeit meine "Transformation" auszufuehren evtl Polygone farblich zu markieren und dann wieder in die Draw-Prozedur zu springen und im naechsten Step einen Schritt weiter zu gehen mit der "Transformation" und dann wieder die Draw-Prozedur aufrufen usw... Ich koennte das per Hand machen, aber dann muesste ich alle States und Variablen der "Transformation"-Prozedur speichern. Es waere toll wenn das automatisch gehen wuerde.

Re: Visual Trace/Debugging

Verfasst: 19.10.2012, 00:47
von Schrompf
Schau Dir doch erstmal die genannten Tools an. Von den GL-Programmen weiß ich es nicht, aber die DX-Tools erlauben ein Durchsteppen jedes einzelnen Fragment Shaders und der x Vertex Shader, Geometrie-Shader und was sonst noch nötig war, bis genau dieser ausgewählte Pixel im Renderziel ankam. Du könntest das aber auch von Hand schreiben, indem Du einfach aus Deinen IndexBuffer gezielt nur ein Dreieck adressierst. Ich sehe darin aber keinen Sinn, wenn man so viel bessere Tools bereits zur Verfügung hat.

Re: Visual Trace/Debugging

Verfasst: 19.10.2012, 15:28
von adapto
Ich muss sagen, dass ich von dem GPUPerfStudio sehr begeistert bin! Allerding erfuellt es nicht meine Ansprueche an das Problem. Ich moechte ein Objekt deformieren und mich interessiert wie die Polygone Schritt fuer Schritt verschoben wurden. Da die Verschiebung nicht Schrittweise gerendert wird, kann ich das wohl mit einem Debugger nicht darstellen. Wenn es dafuer keine Hilfen gibt muss ich das wohl selbst programmieren.
Danke fuer eure Hilfe.

Re: Visual Trace/Debugging

Verfasst: 19.10.2012, 16:39
von antisteo
APITrace ist, was du suchst.
Bild

Re: Visual Trace/Debugging

Verfasst: 19.10.2012, 19:13
von adapto
Danke fuer den Tipp. Aber ich habe festgestellt, dass es mit einem Debugger nicht geht. Ich deformiere das Objekt nicht waehrend ich zeichne. Das passiert in einem anderen Loop und den moechte ich visualisieren. Wenn ich rendere ist die Deformation schon abgeschlossen.

Re: Visual Trace/Debugging

Verfasst: 19.10.2012, 20:12
von antisteo
Tja, von solchen Debugger-Tools habe ich immer geträumt.

Dann deformiere es doch einfach auf der Grafikkarte, dann kannst du die Grafikkartentools mitbenutzen.