Compétence RenderDoc CLI
Analyse en ligne de commande sans interface graphique des captures de trames GPU RenderDoc (fichiers .rdc).
Capacités
- Inspection de capture : métadonnées, sections, vignettes, conversion de format
- Arbre d'actions : lister/rechercher/filtrer les appels de dessin, effacements, dispatchs, marqueurs
- Opérations sur les textures : lister, inspecter, exporter (PNG/JPG/DDS/HDR/EXR), sélection de pixels
- État du pipeline : état complet des shaders/RT/viewport à n'importe quel événement
- Analyse de shaders : exporter un shader sous forme lisible (HLSL/GLSL/désassemblage), lecture des tampons constants
- Inspection des ressources : énumération des tampons/textures, lecture des données brutes
- Données de maillage : décodage des entrées/sorties du vertex shader
- Compteurs GPU : énumérer et récupérer les compteurs de performance matérielle
Groupes de commandes
capture
cli-anything-renderdoc -c frame.rdc capture info # Métadonnées + sections
cli-anything-renderdoc -c frame.rdc capture thumb -o t.png # Extraire la vignette
cli-anything-renderdoc -c frame.rdc capture convert -o out.rdc --format rdc
actions
cli-anything-renderdoc -c frame.rdc actions list # Toutes les actions
cli-anything-renderdoc -c frame.rdc actions list --draws-only # Uniquement les appels de dessin
cli-anything-renderdoc -c frame.rdc actions summary # Comptages par type
cli-anything-renderdoc -c frame.rdc actions find "Shadow" # Recherche par nom
cli-anything-renderdoc -c frame.rdc actions get 42 # Action unique
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
# Exporter un shader sous forme lisible
# Shaders textuels (GLSL/HLSL) → sauvegardés directement
# Shaders binaires (DXBC/SPIR-V) → source intégrée (HLSL/GLSL) ou désassemblage
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
# Comparer l'état du pipeline entre deux événements
# Sortie par défaut : même répertoire que le fichier de capture ; utiliser -o pour modifier
cli-anything-renderdoc -c a.rdc pipeline diff 100 200 -b b.rdc
cli-anything-renderdoc -c frame.rdc pipeline diff 100 200 # même 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
Bundles de prévisualisation
Le support de prévisualisation RenderDoc est destiné à une inspection fidèle de la capture plutôt qu'à un aperçu créatif en direct.
# Lister les recettes de prévisualisation
cli-anything-renderdoc -c frame.rdc --json preview recipes
# Capturer un bundle de prévisualisation pour la capture active ou un événement spécifique
cli-anything-renderdoc -c frame.rdc --json preview capture --recipe quick --event-id 42
# Capturer un bundle de prévisualisation de différence pour deux événements ou captures
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
# Retourner le dernier bundle existant pour la capture
cli-anything-renderdoc -c frame.rdc --json preview latest --recipe quick
Contenu typique d'un bundle de prévisualisation :
- vignette de la capture
- images des cibles de sortie
pipeline_state.jsonaction_summary.json
Les bundles de différence incluent en plus :
- vignettes A/B
- images des cibles de sortie A/B
pipeline_diff.json
RenderDoc n'expose actuellement pas de sessions de prévisualisation en direct. À la place, chaque bundle de capture/différence ajoute à une trajectory.json stable au niveau de la recette.
Commandes de visualisation :
cli-hub previews inspect /path/to/bundle
cli-hub previews html /path/to/bundle -o page.html
cli-hub previews open /path/to/bundle
Mode JSON
Toutes les commandes prennent en charge --json pour une sortie lisible par machine :
cli-anything-renderdoc -c frame.rdc --json actions summary
Variables d'environnement
| Variable | Description |
|---|---|
RENDERDOC_CAPTURE | Chemin du fichier de capture par défaut |
PYTHONPATH | Doit inclure le chemin RenderDoc |
Notes d'utilisation pour l'agent
- Utilisez
pipeline shader-exportpour extraire les shaders — pour les shaders binaires (DXBC/SPIR-V), il exporte automatiquement la source HLSL/GLSL intégrée ou se rabat sur le désassemblage ; pour les shaders textuels (GLSL/HLSL), il sauvegarde directement la source brute - Formats de shaders par API de capture :
- D3D11 → binaire DXBC, exporté sous forme de source HLSL intégrée (
.hlsl) ou assembleur bytecode (.dxbc.asm) - OpenGL/GLES → source textuelle GLSL (
.glsl), déjà lisible - Vulkan → binaire SPIR-V, exporté sous forme de source GLSL intégrée (
.glsl) ou assembleur SPIR-V (.spv.asm)
- D3D11 → binaire DXBC, exporté sous forme de source HLSL intégrée (
- Utilisez
pipeline diffpour comparer deux événements — il écrit un fichier JSON et n'affiche que le chemin ; utilisez-bpour une deuxième capture - Spécifiez toujours
--jsonpour une consommation programmatique - Utilisez
actions summaryen premier pour comprendre la complexité de la capture - Utilisez
actions list --draws-onlypour vous concentrer sur le rendu réel - Utilisez
preview captureoupreview difflorsque l'agent a besoin d'un bundle d'inspection portable et fidèle plutôt que de simples appels de rejeu bruts - Lisez
_trajectory_pathdepuis le JSON de prévisualisation si vous avez besoin d'un historique persistant de capture/différence - Utilisez
cli-hub previews ...uniquement pour inspecter/ouvrir des bundles déjà générés - L'état du pipeline nécessite un ID d'événement provenant de la liste d'actions
- La sauvegarde de texture prend en charge : png, jpg, bmp, tga, hdr, exr, dds
- Les données de tampon peuvent être décodées en hexadécimal, float32, uint32 ou octets bruts