Was macht RenderDoc CLI-Fähigkeit?
Headless Kommandozeilen-Analyse von RenderDoc GPU-Frame-Captures (.rdc-Dateien).
Fähigkeiten
- Capture-Inspektion: Metadaten, Abschnitte, Thumbnails, Formatumwandlung
- Aktionsbaum: Auflisten/Durchsuchen/Filter von Draw-Calls, Clears, Dispatches, Markierungen
- Texturoperationen: Auflisten, Inspizieren, Exportieren (PNG/JPG/DDS/HDR/EXR), Pixel-Auswahl
- Pipeline-Zustand: Vollständiger Shader/RT/Viewport-Zustand zu jedem Ereignis
- Shader-Analyse: Export von Shadern in menschenlesbarer Form (HLSL/GLSL/Disasm), Konstantenpuffer-Rücklesen
- Ressourcen-Inspektion: Buffer-/Textur-Aufzählung, Rohdaten-Lesen
- Mesh-Daten: Vertex-Shader-Ein-/Ausgabe-Dekodierung
- GPU-Zähler: Auflisten und Abrufen von Hardware-Leistungszählern
Befehlsgruppen
capture
cli-anything-renderdoc -c frame.rdc capture info # Metadaten + Abschnitte
cli-anything-renderdoc -c frame.rdc capture thumb -o t.png # Thumbnail extrahieren
cli-anything-renderdoc -c frame.rdc capture convert -o out.rdc --format rdc
actions
cli-anything-renderdoc -c frame.rdc actions list # Alle Aktionen
cli-anything-renderdoc -c frame.rdc actions list --draws-only # Nur Draw-Calls
cli-anything-renderdoc -c frame.rdc actions summary # Anzahl nach Typ
cli-anything-renderdoc -c frame.rdc actions find "Schatten" # Nach Namen suchen
cli-anything-renderdoc -c frame.rdc actions get 42 # Einzelaktion
textures
cli-anything-renderdoc -c frame.rdc textures list
cli-anything-renderdoc -c frame.rdc textures get <id>
cli-anything-renderdoc -c frame.rdc textures save <id> -o out.png --format png
cli-anything-renderdoc -c frame.rdc textures save-outputs 42 -o ./renders/
cli-anything-renderdoc -c frame.rdc textures pick <id> 100 200
pipeline
cli-anything-renderdoc -c frame.rdc pipeline state 42
# Shader in menschenlesbarer Form exportieren
# Text-Shader (GLSL/HLSL) → direkt gespeichert
# Binäre Shader (DXBC/SPIR-V) → eingebetteter Quelltext (HLSL/GLSL) oder Disassembly
cli-anything-renderdoc -c frame.rdc pipeline shader-export 42 --stage Fragment
cli-anything-renderdoc -c frame.rdc pipeline shader-export 42 --stage Vertex -o ./shaders/
cli-anything-renderdoc -c frame.rdc pipeline cbuffer 42 --stage Vertex --index 0
# Pipeline-Zustand zwischen zwei Ereignissen vergleichen
# Standardausgabe: gleiches Verzeichnis wie die Capture-Datei; -o überschreibt
cli-anything-renderdoc -c a.rdc pipeline diff 100 200 -b b.rdc
cli-anything-renderdoc -c frame.rdc pipeline diff 100 200 # gleicher Capture
cli-anything-renderdoc -c a.rdc pipeline diff 100 200 -b b.rdc -o result.json
cli-anything-renderdoc -c a.rdc pipeline diff 100 200 -b b.rdc --no-compact
resources
cli-anything-renderdoc -c frame.rdc resources list
cli-anything-renderdoc -c frame.rdc resources buffers
cli-anything-renderdoc -c frame.rdc resources read-buffer <id> --format float32
mesh
cli-anything-renderdoc -c frame.rdc mesh inputs 42 --max-vertices 10
cli-anything-renderdoc -c frame.rdc mesh outputs 42
counters
cli-anything-renderdoc -c frame.rdc counters list
cli-anything-renderdoc -c frame.rdc counters fetch --ids 1,2,3
Vorschaupakete
Die RenderDoc-Vorschau-Unterstützung dient der wahrheitsgemäßen Capture-Inspektion und nicht der Live-Kreativ-Vorschau.
# Vorschau-Rezepte auflisten
cli-anything-renderdoc -c frame.rdc --json preview recipes
# Ein Vorschaupaket für den aktiven Capture oder ein bestimmtes Ereignis aufnehmen
cli-anything-renderdoc -c frame.rdc --json preview capture --recipe quick --event-id 42
# Ein Diff-Vorschaupaket für zwei Ereignisse oder Captures aufnehmen
cli-anything-renderdoc -c frame.rdc --json preview diff 100 200
cli-anything-renderdoc -c a.rdc --json preview diff 100 200 --capture-b b.rdc
# Das neueste vorhandene Paket für den Capture abrufen
cli-anything-renderdoc -c frame.rdc --json preview latest --recipe quick
Typischer Inhalt eines Vorschaupakets:
- Capture-Thumbnail
- Ausgabe-Zielbilder
pipeline_state.jsonaction_summary.json
Diff-Pakete enthalten zusätzlich:
- A/B-Thumbnails
- A/B-Ausgabe-Zielbilder
pipeline_diff.json
RenderDoc bietet derzeit keine Live-Vorschau-Sitzungen. Stattdessen wird jedes Capture-/Diff-Paket an ein stabiles rezeptebezogenes trajectory.json angehängt.
Viewer-Befehle:
cli-hub previews inspect /path/to/bundle
cli-hub previews html /path/to/bundle -o page.html
cli-hub previews open /path/to/bundle
JSON-Modus
Alle Befehle unterstützen --json für maschinenlesbare Ausgabe:
cli-anything-renderdoc -c frame.rdc --json actions summary
Umgebungsvariablen
| Variable | Beschreibung |
|---|---|
RENDERDOC_CAPTURE | Standardpfad zur Capture-Datei |
PYTHONPATH | Muss den RenderDoc-Pfad enthalten |
Hinweise zur Agenten-Nutzung
- Verwenden Sie
pipeline shader-exportzum Extrahieren von Shadern — bei binären Shadern (DXBC/SPIR-V) wird automatisch der eingebettete HLSL/GLSL-Quelltext exportiert oder auf Disassembly zurückgegriffen; bei Text-Shadern (GLSL/HLSL) wird der rohe Quelltext direkt gespeichert - Shader-Formate nach Capture-API:
- D3D11 → DXBC-binär, exportiert als eingebetteter HLSL-Quelltext (
.hlsl) oder Bytecode-Asm (.dxbc.asm) - OpenGL/GLES → GLSL-Quelltext (
.glsl), bereits menschenlesbar - Vulkan → SPIR-V-binär, exportiert als eingebetteter GLSL-Quelltext (
.glsl) oder SPIR-V-Asm (.spv.asm)
- D3D11 → DXBC-binär, exportiert als eingebetteter HLSL-Quelltext (
- Verwenden Sie
pipeline diffzum Vergleich zweier Ereignisse — es schreibt eine JSON-Datei und gibt nur den Pfad aus; verwenden Sie-bfür einen zweiten Capture - Geben Sie immer
--jsonfür programmatische Verwendung an - Verwenden Sie zuerst
actions summary, um die Capture-Komplexität zu verstehen - Verwenden Sie
actions list --draws-only, um sich auf das eigentliche Rendering zu konzentrieren - Verwenden Sie
preview captureoderpreview diff, wenn der Agent ein portables, ehrliches Inspektionspaket benötigt, statt nur roher Replay-Aufrufe - Lesen Sie
_trajectory_pathaus dem Preview-JSON, wenn Sie eine persistente Capture-/Diff-Historie benötigen - Verwenden Sie
cli-hub previews ...nur zur Inspektion/Öffnung bereits generierter Pakete - Der Pipeline-Zustand erfordert eine Ereignis-ID aus der Aktionsliste
- Textur-Speicherung unterstützt: png, jpg, bmp, tga, hdr, exr, dds
- Buffer-Daten können als hex, float32, uint32 oder rohe Bytes dekodiert werden