RenderDoc CLI 스킬은(는) 무엇을 하나요?
RenderDoc GPU 프레임 캡처(.rdc 파일)에 대한 헤드리스 명령줄 분석입니다.
기능
- 캡처 검사: 메타데이터, 섹션, 썸네일, 포맷 변환
- 액션 트리: 드로우 콜, 클리어, 디스패치, 마커 목록/검색/필터링
- 텍스처 작업: 목록, 검사, 내보내기(PNG/JPG/DDS/HDR/EXR), 픽셀 피킹
- 파이프라인 상태: 모든 이벤트에서 전체 셰이더/RT/뷰포트 상태
- 셰이더 분석: 사람이 읽을 수 있는 형태(HLSL/GLSL/디스어셈블리)로 셰이더 내보내기, 상수 버퍼 읽기
- 리소스 검사: 버퍼/텍스처 열거, 원시 데이터 읽기
- 메시 데이터: 버텍스 셰이더 입력/출력 디코딩
- GPU 카운터: 하드웨어 성능 카운터 열거 및 가져오기
명령 그룹
capture
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
actions
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 # 단일 액션
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
# 사람이 읽을 수 있는 형태로 셰이더 내보내기
# 텍스트 셰이더(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
# 두 이벤트 간 파이프라인 상태 비교
# 기본 출력: 캡처 파일과 동일한 디렉토리 ; -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
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
미리보기 번들
RenderDoc 미리보기 지원은 실시간 크리에이티브 미리보기가 아닌 정확한 캡처 검사를 위한 것입니다.
# 미리보기 레시피 목록
cli-anything-renderdoc -c frame.rdc --json preview recipes
# 활성 캡처 또는 특정 이벤트에 대한 미리보기 번들 캡처
cli-anything-renderdoc -c frame.rdc --json preview capture --recipe quick --event-id 42
# 두 이벤트 또는 캡처에 대한 diff 미리보기 번들 캡처
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
Diff 번들에는 추가로 다음이 포함됩니다:
- A/B 썸네일
- A/B 출력 대상 이미지
pipeline_diff.json
RenderDoc은 현재 실시간 미리보기 세션을 노출하지 않습니다. 대신 각 캡처/diff 번들은 안정적인 레시피 수준의 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) 또는 바이트코드 asm(.dxbc.asm)으로 내보내짐 - OpenGL/GLES → GLSL 소스 텍스트(
.glsl), 이미 사람이 읽을 수 있음 - Vulkan → SPIR-V 이진, 내장 GLSL 소스(
.glsl) 또는 SPIR-V asm(.spv.asm)으로 내보내짐
- D3D11 → DXBC 이진, 내장 HLSL 소스(
pipeline diff를 사용하여 두 이벤트 비교 — JSON 파일을 쓰고 경로만 출력합니다. 두 번째 캡처에는-b를 사용하십시오.- 프로그램적 사용을 위해 항상
--json을 지정하십시오. - 먼저
actions summary를 사용하여 캡처 복잡성을 파악하십시오. - 실제 렌더링에 집중하려면
actions list --draws-only를 사용하십시오. - 에이전트가 원시 리플레이 호출만이 아니라 이식 가능하고 정직한 검사 번들을 필요로 할 때
preview capture또는preview diff를 사용하십시오. - 영구적인 캡처/diff 기록이 필요한 경우 미리보기 JSON에서
_trajectory_path를 읽으십시오. - 이미 생성된 번들을 검사/열 때만
cli-hub previews ...를 사용하십시오. - 파이프라인 상태에는 액션 목록의 이벤트 ID가 필요합니다.
- 텍스처 저장 지원 형식: png, jpg, bmp, tga, hdr, exr, dds
- 버퍼 데이터는 hex, float32, uint32 또는 원시 바이트로 디코딩할 수 있습니다.