RenderDoc CLI スキル
RenderDoc GPUフレームキャプチャ(.rdcファイル)のヘッドレスコマンドライン解析。
機能
- キャプチャ検査: メタデータ、セクション、サムネイル、フォーマット変換
- アクションツリー: ドローコール、クリア、ディスパッチ、マーカーの一覧表示/検索/フィルタリング
- テクスチャ操作: 一覧表示、検査、エクスポート(PNG/JPG/DDS/HDR/EXR)、ピクセルピッキング
- パイプライン状態: 任意のイベントにおけるシェーダ/レンダリングターゲット/ビューポートの完全な状態
- シェーダ解析: 人間可読な形式(HLSL/GLSL/逆アセンブリ)でのシェーダエクスポート、定数バッファの読み戻し
- リソース検査: バッファ/テクスチャの列挙、生データ読み出し
- メッシュデータ: 頂点シェーダの入力/出力デコード
- GPUカウンタ: ハードウェアパフォーマンスカウンタの列挙と取得
コマンドグループ
キャプチャ
cli-anything-renderdoc -c frame.rdc capture info # メタデータ+セクション
cli-anything-renderdoc -c frame.rdc capture thumb -o t.png # サムネイル抽出
cli-anything-renderdoc -c frame.rdc capture convert -o out.rdc --format rdc
アクション
cli-anything-renderdoc -c frame.rdc actions list # 全アクション
cli-anything-renderdoc -c frame.rdc actions list --draws-only # ドローコールのみ
cli-anything-renderdoc -c frame.rdc actions summary # タイプ別カウント
cli-anything-renderdoc -c frame.rdc actions find "Shadow" # 名前で検索
cli-anything-renderdoc -c frame.rdc actions get 42 # 単一アクション
テクスチャ
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
パイプライン
cli-anything-renderdoc -c frame.rdc pipeline state 42
# シェーダを人間可読な形式でエクスポート
# テキストシェーダ(GLSL/HLSL)→ そのまま保存
# バイナリシェーダ(DXBC/SPIR-V)→ 埋め込みソース(HLSL/GLSL)または逆アセンブリ
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
# 2つのイベント間のパイプライン状態を比較
# デフォルト出力: キャプチャファイルと同じディレクトリ; -o で上書き可能
cli-anything-renderdoc -c a.rdc pipeline diff 100 200 -b b.rdc
cli-anything-renderdoc -c frame.rdc pipeline diff 100 200 # 同じキャプチャ内
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
リソース
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
メッシュ
cli-anything-renderdoc -c frame.rdc mesh inputs 42 --max-vertices 10
cli-anything-renderdoc -c frame.rdc mesh outputs 42
カウンタ
cli-anything-renderdoc -c frame.rdc counters list
cli-anything-renderdoc -c frame.rdc counters fetch --ids 1,2,3
プレビューバンドル
RenderDocのプレビュー機能は、ライブのクリエイティブプレビューではなく、真実に基づいたキャプチャ検査を目的としています。
# プレビューレシピの一覧
cli-anything-renderdoc -c frame.rdc --json preview recipes
# アクティブキャプチャまたは特定イベントのプレビューバンドルを取得
cli-anything-renderdoc -c frame.rdc --json preview capture --recipe quick --event-id 42
# 2つのイベントまたはキャプチャ間の差分プレビューバンドルを取得
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
# キャプチャに対する最新の既存バンドルを返す
cli-anything-renderdoc -c frame.rdc --json preview latest --recipe quick
典型的なプレビューバンドルの内容:
- キャプチャサムネイル
- 出力ターゲット画像
pipeline_state.jsonaction_summary.json
差分バンドルには以下が追加されます:
- A/Bサムネイル
- A/B出力ターゲット画像
pipeline_diff.json
RenderDocは現在ライブプレビューセッションを公開していません。代わりに、各キャプチャ/差分バンドルは安定したレシピレベルの trajectory.json に追加されます。
ビューアコマンド:
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モード
すべてのコマンドは機械可読な出力のため --json をサポートします:
cli-anything-renderdoc -c frame.rdc --json actions summary
環境変数
| 変数 | 説明 |
|---|---|
RENDERDOC_CAPTURE | デフォルトのキャプチャファイルパス |
PYTHONPATH | RenderDocのパスを含める必要あり |
エージェント利用時の注意点
pipeline shader-exportを使用してシェーダを抽出する — バイナリシェーダ(DXBC/SPIR-V)の場合は自動的に埋め込みHLSL/GLSLソースをエクスポートするか、逆アセンブリにフォールバックします。テキストシェーダ(GLSL/HLSL)の場合は生のソースをそのまま保存します。- キャプチャAPIによるシェーダ形式:
- D3D11 → DXBCバイナリ、埋め込みHLSLソース(
.hlsl)またはバイトコードアセンブリ(.dxbc.asm)としてエクスポート - OpenGL/GLES → GLSLソーステキスト(
.glsl)、既に人間可読 - Vulkan → SPIR-Vバイナリ、埋め込みGLSLソース(
.glsl)またはSPIR-Vアセンブリ(.spv.asm)としてエクスポート
- D3D11 → DXBCバイナリ、埋め込みHLSLソース(
pipeline diffを使用して2つのイベントを比較する — JSONファイルを書き込み、パスのみを出力します。2番目のキャプチャには-bを使用します。- プログラムで利用する場合は常に
--jsonを指定してください。 - 最初に
actions summaryを使用してキャプチャの複雑さを把握してください。 actions list --draws-onlyを使用して実際のレンダリングに集中してください。- エージェントが生のリプレイ呼び出しだけではなく、ポータブルで誠実な検査バンドルを必要とする場合は、
preview captureまたはpreview diffを使用してください。 - 永続的なキャプチャ/差分履歴が必要な場合は、プレビューJSONから
_trajectory_pathを読み取ってください。 cli-hub previews ...は既に生成されたバンドルの検査/オープンにのみ使用してください。- パイプライン状態にはアクションリストからのイベントIDが必要です。
- テクスチャ保存対応形式: png, jpg, bmp, tga, hdr, exr, dds
- バッファデータはhex、float32、uint32、生バイトとしてデコード可能です。