rdc-cli 0.5.6__tar.gz → 0.6.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (682) hide show
  1. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.gitignore +2 -0
  2. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/PKG-INFO +8 -3
  3. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/README.md +7 -2
  4. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/data/commands.json +17 -11
  5. rdc_cli-0.6.1/docs-astro/src/data/replay.json +116 -0
  6. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/examples.astro +6 -8
  7. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/install.astro +5 -1
  8. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/remote.astro +5 -0
  9. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/usage.astro +0 -3
  10. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/ruff.toml +2 -0
  11. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/gen-commands.py +1 -1
  12. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/_build_renderdoc.py +29 -5
  13. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/_platform.py +19 -1
  14. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/_skills/SKILL.md +32 -21
  15. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/_skills/references/commands-quick-ref.md +43 -16
  16. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/_transport.py +0 -21
  17. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/capture_core.py +33 -3
  18. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/cli.py +2 -0
  19. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/_helpers.py +24 -0
  20. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/android.py +2 -2
  21. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/capture.py +2 -3
  22. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/capture_control.py +2 -0
  23. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/cbuffer.py +1 -1
  24. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/counters.py +24 -16
  25. rdc_cli-0.6.1/src/rdc/commands/descriptors.py +99 -0
  26. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/doctor.py +62 -23
  27. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/events.py +42 -47
  28. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/export.py +22 -4
  29. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/info.py +19 -22
  30. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/mesh.py +27 -1
  31. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/pipeline.py +24 -21
  32. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/pixel.py +15 -17
  33. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/resources.py +39 -22
  34. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/session.py +3 -2
  35. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/snapshot.py +27 -11
  36. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/unix_helpers.py +13 -14
  37. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/usage.py +24 -16
  38. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/vfs.py +17 -9
  39. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/daemon_server.py +68 -0
  40. rdc_cli-0.6.1/src/rdc/formatters/options.py +74 -0
  41. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/_helpers.py +273 -7
  42. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/buffer.py +377 -60
  43. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/core.py +3 -46
  44. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/debug.py +9 -9
  45. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/descriptor.py +84 -1
  46. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/query.py +26 -2
  47. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/texture.py +69 -16
  48. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/protocol.py +0 -17
  49. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/remote_core.py +27 -3
  50. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/services/diff_service.py +1 -41
  51. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/services/session_service.py +55 -10
  52. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/vfs/router.py +24 -0
  53. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/vfs/tree_cache.py +22 -2
  54. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc_cli.egg-info/PKG-INFO +8 -3
  55. rdc_cli-0.6.1/src/rdc_cli.egg-info/SOURCES.txt +353 -0
  56. rdc_cli-0.6.1/src/rdc_cli.egg-info/scm_file_list.json +349 -0
  57. rdc_cli-0.6.1/src/rdc_cli.egg-info/scm_version.json +8 -0
  58. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/conftest.py +55 -13
  59. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/e2e_helpers.py +12 -0
  60. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_diff.py +25 -0
  61. rdc_cli-0.6.1/tests/integration/test_mock_api_sync.py +293 -0
  62. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/mocks/mock_renderdoc.py +44 -1
  63. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/conftest.py +13 -0
  64. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_android_commands.py +13 -6
  65. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_binary_daemon.py +12 -1
  66. rdc_cli-0.6.1/tests/unit/test_buffer_decode.py +1837 -0
  67. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_build_renderdoc.py +103 -16
  68. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_capture_control.py +33 -6
  69. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_capture_core.py +157 -1
  70. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_cbuffer_commands.py +17 -1
  71. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_cli_session_flag.py +0 -1
  72. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_daemon_server_unit.py +38 -0
  73. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_daemon_shader_api_fix.py +57 -0
  74. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_debug_handlers.py +52 -1
  75. rdc_cli-0.6.1/tests/unit/test_descriptors_commands.py +71 -0
  76. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_descriptors_daemon.py +138 -0
  77. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_command.py +30 -1
  78. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_service.py +0 -38
  79. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_summary.py +19 -1
  80. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_discover.py +30 -0
  81. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_doctor.py +114 -0
  82. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_export_commands.py +106 -0
  83. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_fix2_vfs_intermediate_dirs.py +21 -0
  84. rdc_cli-0.6.1/tests/unit/test_formatters.py +350 -0
  85. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_handlers_remote.py +35 -0
  86. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_keep_remote.py +0 -6
  87. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_mesh_commands.py +59 -0
  88. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_output_options.py +29 -12
  89. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_platform.py +115 -1
  90. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_quickfix_batch.py +23 -8
  91. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_remote_commands.py +0 -5
  92. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_remote_core.py +48 -3
  93. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_remote_setup.py +0 -6
  94. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_remote_state.py +0 -5
  95. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_remote_status_disconnect.py +0 -6
  96. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_resources_commands.py +24 -0
  97. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_resources_filter.py +41 -6
  98. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_session_commands.py +30 -16
  99. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_session_service.py +79 -13
  100. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_session_state.py +0 -4
  101. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_shader_preload.py +0 -2
  102. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_snapshot_command.py +77 -0
  103. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_split_binary.py +0 -33
  104. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_split_core.py +3 -2
  105. rdc_cli-0.6.1/tests/unit/test_stats_event_count.py +39 -0
  106. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_target_state.py +0 -7
  107. rdc_cli-0.6.1/tests/unit/test_tex_stats_handler.py +957 -0
  108. rdc_cli-0.6.1/tests/unit/test_tooling_files.py +73 -0
  109. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_vfs_commands.py +23 -8
  110. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_vfs_router.py +14 -0
  111. rdc_cli-0.5.6/docs-astro/src/data/replay.json +0 -116
  112. rdc_cli-0.5.6/openspec/changes/2026-03-03-bugfix-p2-batch/proposal.md +0 -72
  113. rdc_cli-0.5.6/openspec/changes/2026-03-03-bugfix-p2-batch/tasks.md +0 -29
  114. rdc_cli-0.5.6/openspec/changes/2026-03-03-bugfix-p2-batch/test-plan.md +0 -109
  115. rdc_cli-0.5.6/openspec/changes/2026-03-04-w6-windows-bugfixes/proposal.md +0 -51
  116. rdc_cli-0.5.6/openspec/changes/2026-03-04-w6-windows-bugfixes/tasks.md +0 -9
  117. rdc_cli-0.5.6/openspec/changes/2026-03-04-w6-windows-bugfixes/test-plan.md +0 -23
  118. rdc_cli-0.5.6/openspec/changes/2026-06-04-open-gpu-override/proposal.md +0 -83
  119. rdc_cli-0.5.6/openspec/changes/2026-06-04-open-gpu-override/tasks.md +0 -14
  120. rdc_cli-0.5.6/openspec/changes/2026-06-04-open-gpu-override/test-plan.md +0 -36
  121. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +0 -15
  122. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +0 -12
  123. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +0 -49
  124. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +0 -12
  125. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +0 -9
  126. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +0 -9
  127. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +0 -17
  128. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +0 -13
  129. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-core-checks/specs/foundation/spec.md +0 -14
  130. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +0 -12
  131. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +0 -43
  132. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +0 -13
  133. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/specs/daemon/spec.md +0 -12
  134. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +0 -8
  135. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +0 -21
  136. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +0 -13
  137. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-daemon-transport/specs/daemon/spec.md +0 -14
  138. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +0 -11
  139. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +0 -18
  140. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +0 -12
  141. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/specs/tooling/spec.md +0 -12
  142. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +0 -9
  143. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +0 -17
  144. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +0 -12
  145. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-pixi-env/specs/tooling/spec.md +0 -8
  146. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +0 -8
  147. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +0 -16
  148. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +0 -13
  149. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-session-skeleton/specs/session/spec.md +0 -19
  150. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +0 -11
  151. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +0 -40
  152. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +0 -12
  153. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +0 -18
  154. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-structure-refactor/specs/architecture/spec.md +0 -9
  155. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +0 -9
  156. rdc_cli-0.5.6/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +0 -17
  157. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +0 -39
  158. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-count-shadermap/specs/daemon/spec.md +0 -27
  159. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +0 -24
  160. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +0 -51
  161. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +0 -39
  162. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/daemon/spec.md +0 -44
  163. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/foundation/spec.md +0 -44
  164. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +0 -38
  165. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +0 -49
  166. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +0 -54
  167. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-draws-events/specs/daemon/spec.md +0 -32
  168. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +0 -32
  169. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +0 -81
  170. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +0 -33
  171. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +0 -10
  172. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +0 -37
  173. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +0 -43
  174. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +0 -10
  175. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +0 -35
  176. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +0 -23
  177. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-resources-passes/specs/daemon/spec.md +0 -20
  178. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +0 -12
  179. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +0 -25
  180. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +0 -41
  181. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +0 -57
  182. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +0 -47
  183. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +0 -133
  184. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +0 -114
  185. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +0 -161
  186. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +0 -116
  187. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +0 -55
  188. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +0 -58
  189. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +0 -69
  190. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +0 -41
  191. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +0 -74
  192. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +0 -82
  193. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +0 -44
  194. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +0 -94
  195. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +0 -230
  196. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +0 -232
  197. rdc_cli-0.5.6/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +0 -258
  198. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +0 -145
  199. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +0 -92
  200. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +0 -215
  201. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +0 -104
  202. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +0 -71
  203. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +0 -142
  204. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +0 -133
  205. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +0 -50
  206. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +0 -86
  207. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +0 -120
  208. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +0 -77
  209. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +0 -165
  210. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +0 -34
  211. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +0 -7
  212. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/test-plan.md +0 -35
  213. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +0 -34
  214. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +0 -9
  215. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/test-plan.md +0 -42
  216. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/proposal.md +0 -54
  217. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/tasks.md +0 -28
  218. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/test-plan.md +0 -63
  219. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +0 -31
  220. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +0 -7
  221. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.5-release-ci/test-plan.md +0 -42
  222. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +0 -29
  223. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +0 -8
  224. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/test-plan.md +0 -40
  225. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +0 -48
  226. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +0 -30
  227. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-output-quality/test-plan.md +0 -69
  228. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +0 -49
  229. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +0 -12
  230. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/test-plan.md +0 -67
  231. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +0 -55
  232. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +0 -10
  233. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-phase2.6-shader-api/test-plan.md +0 -65
  234. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +0 -47
  235. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +0 -19
  236. rdc_cli-0.5.6/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +0 -50
  237. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +0 -35
  238. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +0 -9
  239. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/test-plan.md +0 -34
  240. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/proposal.md +0 -43
  241. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/tasks.md +0 -15
  242. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/test-plan.md +0 -42
  243. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +0 -93
  244. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +0 -27
  245. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +0 -84
  246. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +0 -45
  247. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +0 -13
  248. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/test-plan.md +0 -47
  249. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +0 -193
  250. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +0 -138
  251. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/test-plan.md +0 -163
  252. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +0 -199
  253. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +0 -154
  254. rdc_cli-0.5.6/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/test-plan.md +0 -154
  255. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-ai-agent-skill/proposal.md +0 -114
  256. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-ai-agent-skill/tasks.md +0 -168
  257. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-ai-agent-skill/test-plan.md +0 -219
  258. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +0 -97
  259. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +0 -281
  260. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +0 -219
  261. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/proposal.md +0 -164
  262. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/tasks.md +0 -478
  263. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/test-plan.md +0 -562
  264. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +0 -36
  265. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +0 -45
  266. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +0 -49
  267. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +0 -36
  268. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +0 -55
  269. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +0 -42
  270. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +0 -157
  271. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +0 -246
  272. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +0 -222
  273. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +0 -108
  274. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +0 -13
  275. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/test-plan.md +0 -140
  276. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/proposal.md +0 -129
  277. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/tasks.md +0 -71
  278. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/test-plan.md +0 -121
  279. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/proposal.md +0 -128
  280. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/tasks.md +0 -105
  281. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/test-plan.md +0 -134
  282. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +0 -105
  283. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +0 -45
  284. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +0 -49
  285. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +0 -159
  286. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +0 -77
  287. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +0 -117
  288. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +0 -170
  289. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +0 -43
  290. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +0 -84
  291. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +0 -165
  292. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +0 -90
  293. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +0 -159
  294. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +0 -111
  295. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +0 -80
  296. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +0 -170
  297. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +0 -106
  298. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +0 -51
  299. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +0 -86
  300. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-docs-automation/proposal.md +0 -95
  301. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-docs-automation/tasks.md +0 -185
  302. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-docs-automation/test-plan.md +0 -68
  303. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/proposal.md +0 -281
  304. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/tasks.md +0 -349
  305. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/test-plan.md +0 -361
  306. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-image-compare/proposal.md +0 -98
  307. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-image-compare/tasks.md +0 -9
  308. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +0 -49
  309. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +0 -177
  310. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +0 -92
  311. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +0 -174
  312. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +0 -323
  313. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +0 -170
  314. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +0 -217
  315. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +0 -91
  316. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +0 -91
  317. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +0 -128
  318. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +0 -332
  319. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +0 -100
  320. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +0 -118
  321. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +0 -430
  322. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +0 -227
  323. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/test-plan.md +0 -263
  324. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +0 -58
  325. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +0 -28
  326. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +0 -39
  327. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +0 -113
  328. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +0 -54
  329. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +0 -128
  330. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +0 -130
  331. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +0 -40
  332. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +0 -80
  333. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +0 -137
  334. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +0 -52
  335. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +0 -81
  336. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +0 -177
  337. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +0 -23
  338. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +0 -93
  339. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-renderdoc-build-helper/proposal.md +0 -97
  340. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-renderdoc-build-helper/tasks.md +0 -135
  341. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-renderdoc-build-helper/test-plan.md +0 -95
  342. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +0 -111
  343. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +0 -143
  344. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +0 -171
  345. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +0 -15
  346. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +0 -21
  347. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +0 -29
  348. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-skill-auto-install/proposal.md +0 -141
  349. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-skill-auto-install/tasks.md +0 -118
  350. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-skill-auto-install/test-plan.md +0 -134
  351. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +0 -71
  352. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +0 -18
  353. rdc_cli-0.5.6/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +0 -38
  354. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b17-eid-mutation/proposal.md +0 -214
  355. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b17-eid-mutation/tasks.md +0 -186
  356. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b17-eid-mutation/test-plan.md +0 -104
  357. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/proposal.md +0 -202
  358. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/tasks.md +0 -130
  359. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/test-plan.md +0 -139
  360. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/proposal.md +0 -161
  361. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/tasks.md +0 -157
  362. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/test-plan.md +0 -122
  363. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/proposal.md +0 -155
  364. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/tasks.md +0 -71
  365. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/test-plan.md +0 -303
  366. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-docs-polish/proposal.md +0 -79
  367. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-docs-polish/tasks.md +0 -46
  368. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-docs-polish/test-plan.md +0 -57
  369. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-fix-aur-build/proposal.md +0 -21
  370. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-fix-aur-build/tasks.md +0 -6
  371. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-fix-aur-build/test-plan.md +0 -11
  372. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/proposal.md +0 -239
  373. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/tasks.md +0 -131
  374. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/test-plan.md +0 -327
  375. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-phase-w2-build-script/proposal.md +0 -173
  376. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-phase-w2-build-script/tasks.md +0 -90
  377. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-phase-w2-build-script/test-plan.md +0 -116
  378. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-phase5b-capture-unified/proposal.md +0 -208
  379. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-phase5b-capture-unified/tasks.md +0 -405
  380. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-phase5b-capture-unified/test-plan.md +0 -288
  381. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +0 -59
  382. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +0 -32
  383. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +0 -75
  384. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +0 -53
  385. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +0 -34
  386. rdc_cli-0.5.6/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +0 -81
  387. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-b43-b44-remote-split/proposal.md +0 -66
  388. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-b43-b44-remote-split/tasks.md +0 -24
  389. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-b43-b44-remote-split/test-plan.md +0 -30
  390. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-m-macos-support/proposal.md +0 -70
  391. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-m-macos-support/tasks.md +0 -74
  392. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-m-macos-support/test-plan.md +0 -60
  393. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/proposal.md +0 -34
  394. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/tasks.md +0 -15
  395. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/test-plan.md +0 -20
  396. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/proposal.md +0 -88
  397. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/tasks.md +0 -64
  398. rdc_cli-0.5.6/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/test-plan.md +0 -191
  399. rdc_cli-0.5.6/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/proposal.md +0 -71
  400. rdc_cli-0.5.6/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/tasks.md +0 -43
  401. rdc_cli-0.5.6/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/test-plan.md +0 -190
  402. rdc_cli-0.5.6/openspec/changes/archive/2026-02-28-design-deviation-fixes/proposal.md +0 -68
  403. rdc_cli-0.5.6/openspec/changes/archive/2026-02-28-design-deviation-fixes/tasks.md +0 -25
  404. rdc_cli-0.5.6/openspec/changes/archive/2026-02-28-design-deviation-fixes/test-plan.md +0 -45
  405. rdc_cli-0.5.6/openspec/changes/archive/2026-02-28-dev-install-enhancement/proposal.md +0 -136
  406. rdc_cli-0.5.6/openspec/changes/archive/2026-02-28-dev-install-enhancement/tasks.md +0 -13
  407. rdc_cli-0.5.6/openspec/changes/archive/2026-02-28-dev-install-enhancement/test-plan.md +0 -56
  408. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-fix-225-d3d12-multi-gpu/proposal.md +0 -90
  409. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-fix-225-d3d12-multi-gpu/tasks.md +0 -10
  410. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-fix-225-d3d12-multi-gpu/test-plan.md +0 -33
  411. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-issue-224-cbuffer-export/proposal.md +0 -95
  412. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-issue-224-cbuffer-export/specs/daemon/spec.md +0 -40
  413. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-issue-224-cbuffer-export/tasks.md +0 -47
  414. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-issue-224-cbuffer-export/test-plan.md +0 -78
  415. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/proposal.md +0 -95
  416. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/specs/daemon/spec.md +0 -40
  417. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/tasks.md +0 -31
  418. rdc_cli-0.5.6/openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/test-plan.md +0 -74
  419. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/proposal.md +0 -235
  420. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/tasks.md +0 -14
  421. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/test-plan.md +0 -232
  422. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/proposal.md +0 -101
  423. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/tasks.md +0 -12
  424. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/test-plan.md +0 -34
  425. rdc_cli-0.5.6/openspec/specs/architecture/spec.md +0 -13
  426. rdc_cli-0.5.6/openspec/specs/ci/spec.md +0 -23
  427. rdc_cli-0.5.6/openspec/specs/daemon/spec.md +0 -156
  428. rdc_cli-0.5.6/openspec/specs/foundation/spec.md +0 -18
  429. rdc_cli-0.5.6/openspec/specs/packaging/spec.md +0 -56
  430. rdc_cli-0.5.6/openspec/specs/session/spec.md +0 -23
  431. rdc_cli-0.5.6/openspec/specs/tooling/spec.md +0 -23
  432. rdc_cli-0.5.6/src/rdc/formatters/options.py +0 -22
  433. rdc_cli-0.5.6/src/rdc_cli.egg-info/SOURCES.txt +0 -668
  434. rdc_cli-0.5.6/tests/integration/test_mock_api_sync.py +0 -125
  435. rdc_cli-0.5.6/tests/unit/test_buffer_decode.py +0 -917
  436. rdc_cli-0.5.6/tests/unit/test_formatters.py +0 -90
  437. rdc_cli-0.5.6/tests/unit/test_tex_stats_handler.py +0 -316
  438. rdc_cli-0.5.6/tests/unit/test_tooling_files.py +0 -35
  439. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.commitlintrc.yml +0 -0
  440. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.githooks/pre-commit +0 -0
  441. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.githooks/pre-push +0 -0
  442. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/CODEOWNERS +0 -0
  443. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  444. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  445. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  446. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  447. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/workflows/aur.yml +0 -0
  448. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/workflows/ci.yml +0 -0
  449. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/workflows/commitlint.yml +0 -0
  450. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.github/workflows/docs.yml +0 -0
  451. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.python-version +0 -0
  452. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/.release-please-manifest.json +0 -0
  453. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/CONTRIBUTING.md +0 -0
  454. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/LICENSE +0 -0
  455. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/Makefile +0 -0
  456. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/SECURITY.md +0 -0
  457. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/aur/PKGBUILD +0 -0
  458. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/aur/stable/PKGBUILD +0 -0
  459. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docker/Dockerfile +0 -0
  460. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/astro.config.mjs +0 -0
  461. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/package-lock.json +0 -0
  462. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/package.json +0 -0
  463. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/public/.nojekyll +0 -0
  464. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/public/favicon.svg +0 -0
  465. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Commands.astro +0 -0
  466. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Demo.astro +0 -0
  467. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Features.astro +0 -0
  468. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Footer.astro +0 -0
  469. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Hero.astro +0 -0
  470. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Install.astro +0 -0
  471. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Navbar.astro +0 -0
  472. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Philosophy.astro +0 -0
  473. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/Terminal.astro +0 -0
  474. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
  475. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/data/stats.json +0 -0
  476. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/layouts/Base.astro +0 -0
  477. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/layouts/Docs.astro +0 -0
  478. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
  479. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/commands.astro +0 -0
  480. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/design.astro +0 -0
  481. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/index.astro +0 -0
  482. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/docs/vfs.astro +0 -0
  483. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/pages/index.astro +0 -0
  484. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/src/styles/global.css +0 -0
  485. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/tailwind.config.mjs +0 -0
  486. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/tapes/pipeline.tape +0 -0
  487. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/tapes/quickstart.tape +0 -0
  488. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/tests/validate.mjs +0 -0
  489. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/docs-astro/tsconfig.json +0 -0
  490. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/mypy.ini +0 -0
  491. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/pixi.lock +0 -0
  492. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/pixi.toml +0 -0
  493. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/pyproject.toml +0 -0
  494. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/release-please-config.json +0 -0
  495. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/build-renderdoc.sh +0 -0
  496. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/build_renderdoc.py +0 -0
  497. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/capture_fixture.sh +0 -0
  498. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/dev_install.py +0 -0
  499. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/e2e_test.py +0 -0
  500. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/ensure-renderdoc.py +0 -0
  501. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/ensure-renderdoc.sh +0 -0
  502. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/ensure-skill-link.py +0 -0
  503. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/gen-replay.py +0 -0
  504. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/gen-skill-ref.py +0 -0
  505. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/gen-stats.py +0 -0
  506. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/gen_and_check.py +0 -0
  507. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/setup-renderdoc.sh +0 -0
  508. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/setup-vulkan-samples.sh +0 -0
  509. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/setup_android_tools.py +0 -0
  510. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/setup_vulkan_samples.py +0 -0
  511. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/verify-package.sh +0 -0
  512. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/scripts/verify_package.py +0 -0
  513. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/setup.cfg +0 -0
  514. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/__init__.py +0 -0
  515. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/_progress.py +0 -0
  516. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/_skills/__init__.py +0 -0
  517. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/adapter.py +0 -0
  518. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/assert_ci.py +0 -0
  519. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/assert_image.py +0 -0
  520. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/capturefile.py +0 -0
  521. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/completion.py +0 -0
  522. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/debug.py +0 -0
  523. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/diff.py +0 -0
  524. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/install_skill.py +0 -0
  525. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/pick_pixel.py +0 -0
  526. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/remote.py +0 -0
  527. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/script.py +0 -0
  528. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/search.py +0 -0
  529. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/serve.py +0 -0
  530. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/setup_renderdoc.py +0 -0
  531. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/shader_edit.py +0 -0
  532. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/tex_stats.py +0 -0
  533. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/commands/unused_targets.py +0 -0
  534. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/daemon_client.py +0 -0
  535. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/diff/__init__.py +0 -0
  536. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/diff/alignment.py +0 -0
  537. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/diff/draws.py +0 -0
  538. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/diff/framebuffer.py +0 -0
  539. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/diff/pipeline.py +0 -0
  540. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/diff/resources.py +0 -0
  541. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/diff/stats.py +0 -0
  542. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/diff/summary.py +0 -0
  543. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/discover.py +0 -0
  544. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/formatters/json_fmt.py +0 -0
  545. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/formatters/kv.py +0 -0
  546. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/formatters/tsv.py +0 -0
  547. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/__init__.py +0 -0
  548. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/_types.py +0 -0
  549. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/capture.py +0 -0
  550. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/capturefile.py +0 -0
  551. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/pipe_state.py +0 -0
  552. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/pixel.py +0 -0
  553. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/script.py +0 -0
  554. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/shader.py +0 -0
  555. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/shader_edit.py +0 -0
  556. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/unused.py +0 -0
  557. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/handlers/vfs.py +0 -0
  558. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/image_compare.py +0 -0
  559. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/remote_state.py +0 -0
  560. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/services/__init__.py +0 -0
  561. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/services/query_service.py +0 -0
  562. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/session_state.py +0 -0
  563. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/target_state.py +0 -0
  564. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/vfs/__init__.py +0 -0
  565. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc/vfs/formatter.py +0 -0
  566. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
  567. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc_cli.egg-info/entry_points.txt +0 -0
  568. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc_cli.egg-info/requires.txt +0 -0
  569. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/src/rdc_cli.egg-info/top_level.txt +0 -0
  570. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/conftest.py +0 -0
  571. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/__init__.py +0 -0
  572. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/blackbox_test_catalog.md +0 -0
  573. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_advanced.py +0 -0
  574. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_assert.py +0 -0
  575. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_capture.py +0 -0
  576. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_capturefile.py +0 -0
  577. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_debug.py +0 -0
  578. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_export.py +0 -0
  579. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_formats.py +0 -0
  580. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_presession.py +0 -0
  581. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_query.py +0 -0
  582. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_session.py +0 -0
  583. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_shader_edit.py +0 -0
  584. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/e2e/test_vfs.py +0 -0
  585. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/fixtures/gles-multipass-debug.apk +0 -0
  586. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/fixtures/gles-triangle-debug.apk +0 -0
  587. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/fixtures/gles_android_mali.rdc +0 -0
  588. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/fixtures/gles_multipass_mali.rdc +0 -0
  589. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/fixtures/hello_triangle.rdc +0 -0
  590. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/fixtures/vkcube.rdc +0 -0
  591. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/fixtures/vkcube_validation.rdc +0 -0
  592. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/integration/test_build_renderdoc_integration.py +0 -0
  593. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/integration/test_daemon_handlers_real.py +0 -0
  594. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/integration/test_real_replay.py +0 -0
  595. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/integration/test_vulkan_samples.py +0 -0
  596. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_adapter.py +0 -0
  597. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_assert_ci_commands.py +0 -0
  598. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_assert_image_command.py +0 -0
  599. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_capture.py +0 -0
  600. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_capture_handlers.py +0 -0
  601. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_capturefile_commands.py +0 -0
  602. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_capturefile_handlers.py +0 -0
  603. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_ci_files.py +0 -0
  604. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_cli.py +0 -0
  605. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_completion.py +0 -0
  606. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_count_shadermap.py +0 -0
  607. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_counters_commands.py +0 -0
  608. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_counters_daemon.py +0 -0
  609. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_daemon_crash_regression.py +0 -0
  610. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_daemon_output_quality.py +0 -0
  611. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_daemon_pipeline_extended.py +0 -0
  612. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_daemon_shader_extended.py +0 -0
  613. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_daemon_transport.py +0 -0
  614. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_debug_commands.py +0 -0
  615. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_dev_install.py +0 -0
  616. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_alignment.py +0 -0
  617. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_draws.py +0 -0
  618. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_framebuffer.py +0 -0
  619. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_pipeline.py +0 -0
  620. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_resources.py +0 -0
  621. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_diff_stats.py +0 -0
  622. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_doctor_hints.py +0 -0
  623. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_draws_daemon.py +0 -0
  624. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_draws_events_cli.py +0 -0
  625. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_draws_events_daemon.py +0 -0
  626. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_eid_completion.py +0 -0
  627. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_events_commands.py +0 -0
  628. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_export_overlay.py +0 -0
  629. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_fix1_draws_pass_name.py +0 -0
  630. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
  631. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_formatters_kv.py +0 -0
  632. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_gen_skill_ref.py +0 -0
  633. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_image_compare.py +0 -0
  634. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_info_commands.py +0 -0
  635. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_install_skill.py +0 -0
  636. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_json_errors.py +0 -0
  637. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_mesh_handler.py +0 -0
  638. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_mock_capture_types.py +0 -0
  639. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_mock_renderdoc.py +0 -0
  640. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_open_remote.py +0 -0
  641. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_overlay_handler.py +0 -0
  642. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pass_deps.py +0 -0
  643. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pick_pixel_commands.py +0 -0
  644. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pick_pixel_daemon.py +0 -0
  645. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pipeline_cli_phase27.py +0 -0
  646. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pipeline_commands.py +0 -0
  647. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pipeline_daemon.py +0 -0
  648. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pipeline_section_routing.py +0 -0
  649. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pipeline_shader.py +0 -0
  650. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pipeline_state.py +0 -0
  651. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pixel_history_commands.py +0 -0
  652. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pixel_history_daemon.py +0 -0
  653. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_pixi_files.py +0 -0
  654. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_progress.py +0 -0
  655. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_protocol.py +0 -0
  656. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_query_service.py +0 -0
  657. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_remote_replay.py +0 -0
  658. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_require_pipe.py +0 -0
  659. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_resource_semantic_completion.py +0 -0
  660. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_script_command.py +0 -0
  661. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_script_handler.py +0 -0
  662. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_search.py +0 -0
  663. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_semantic_completion.py +0 -0
  664. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_serve.py +0 -0
  665. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_session_completion.py +0 -0
  666. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_setup_renderdoc.py +0 -0
  667. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_setup_vulkan_samples.py +0 -0
  668. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_shader_edit_commands.py +0 -0
  669. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_shader_edit_handlers.py +0 -0
  670. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_skill_structure.py +0 -0
  671. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_tex_stats_commands.py +0 -0
  672. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_unix_helpers_commands.py +0 -0
  673. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_unused_targets.py +0 -0
  674. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_usage_commands.py +0 -0
  675. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_usage_daemon.py +0 -0
  676. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_vfs_binary.py +0 -0
  677. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_vfs_completion.py +0 -0
  678. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_vfs_daemon.py +0 -0
  679. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_vfs_formatter.py +0 -0
  680. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_vfs_tree_cache.py +0 -0
  681. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/tests/unit/test_windows_compat.py +0 -0
  682. {rdc_cli-0.5.6 → rdc_cli-0.6.1}/uv.lock +0 -0
@@ -18,4 +18,6 @@ tests/fixtures/vulkan_samples
18
18
  .claude/*
19
19
  !.claude/skills/
20
20
  _site/
21
+ docs-astro/.astro/
21
22
  docs-astro/dist/
23
+ docs-astro/node_modules/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdc-cli
3
- Version: 0.5.6
3
+ Version: 0.6.1
4
4
  Summary: CLI for RenderDoc .rdc captures
5
5
  Author: Jim
6
6
  License-Expression: MIT
@@ -142,7 +142,9 @@ rdc search "shadowMap" # grep across all shaders in the frame
142
142
  ```bash
143
143
  rdc texture 5 -o albedo.png # export a texture
144
144
  rdc rt 142 -o render.png # export render target
145
+ rdc rt 142 --depth -o depth.png # export raw depth attachment
145
146
  rdc buffer 88 -o verts.bin # export raw buffer
147
+ rdc cbuffer 142 --stage ps --binding 0 # decode a constant buffer to JSON
146
148
  rdc snapshot 142 -o ./snap/ # pipeline + shaders + render targets
147
149
  rdc draws --json | jq '.[] | select(.triangles > 10000)' # filter with jq
148
150
  ```
@@ -177,6 +179,9 @@ rdc-cli supports three deployment modes:
177
179
  | **Split** (`--listen`/`--connect`) | server | server-local GPU | **no** |
178
180
 
179
181
  ```bash
182
+ # Multi-GPU host: force the replay GPU (0-based index, name, or device ID)
183
+ rdc open frame.rdc --gpu 1
184
+
180
185
  # Proxy: local daemon, remote GPU (needs renderdoccmd on remote)
181
186
  rdc open frame.rdc --proxy gpu-server:39920
182
187
 
@@ -238,12 +243,12 @@ Run `rdc --help` for the full list, or `rdc <command> --help` for details. See
238
243
  | Debug | `debug pixel`, `debug vertex`, `debug thread`, `pixel`, `pick-pixel`, `tex-stats` |
239
244
  | Shader edit | `shader-build`, `shader-replace`, `shader-restore`, `shader-restore-all`, `shader-encodings` |
240
245
  | Resources | `resources`, `resource`, `passes`, `pass`, `usage`, `unused-targets` |
241
- | Export | `texture`, `rt`, `buffer`, `mesh`, `snapshot` |
246
+ | Export | `texture`, `rt`, `buffer`, `cbuffer`, `mesh`, `snapshot` |
242
247
  | Search | `search`, `counters` |
243
248
  | Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
244
249
  | Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
245
250
  | VFS | `ls`, `cat`, `tree` |
246
- | Remote | `remote connect`, `remote list`, `remote capture` |
251
+ | Remote | `remote connect`, `remote list`, `remote capture`, `remote setup`, `remote status`, `remote disconnect` |
247
252
  | Android | `android setup`, `android stop`, `android capture` |
248
253
  | Target control | `attach`, `capture-trigger`, `capture-list`, `capture-copy` |
249
254
  | Capture file | `sections`, `section`, `callstacks`, `gpus`, `thumbnail` |
@@ -115,7 +115,9 @@ rdc search "shadowMap" # grep across all shaders in the frame
115
115
  ```bash
116
116
  rdc texture 5 -o albedo.png # export a texture
117
117
  rdc rt 142 -o render.png # export render target
118
+ rdc rt 142 --depth -o depth.png # export raw depth attachment
118
119
  rdc buffer 88 -o verts.bin # export raw buffer
120
+ rdc cbuffer 142 --stage ps --binding 0 # decode a constant buffer to JSON
119
121
  rdc snapshot 142 -o ./snap/ # pipeline + shaders + render targets
120
122
  rdc draws --json | jq '.[] | select(.triangles > 10000)' # filter with jq
121
123
  ```
@@ -150,6 +152,9 @@ rdc-cli supports three deployment modes:
150
152
  | **Split** (`--listen`/`--connect`) | server | server-local GPU | **no** |
151
153
 
152
154
  ```bash
155
+ # Multi-GPU host: force the replay GPU (0-based index, name, or device ID)
156
+ rdc open frame.rdc --gpu 1
157
+
153
158
  # Proxy: local daemon, remote GPU (needs renderdoccmd on remote)
154
159
  rdc open frame.rdc --proxy gpu-server:39920
155
160
 
@@ -211,12 +216,12 @@ Run `rdc --help` for the full list, or `rdc <command> --help` for details. See
211
216
  | Debug | `debug pixel`, `debug vertex`, `debug thread`, `pixel`, `pick-pixel`, `tex-stats` |
212
217
  | Shader edit | `shader-build`, `shader-replace`, `shader-restore`, `shader-restore-all`, `shader-encodings` |
213
218
  | Resources | `resources`, `resource`, `passes`, `pass`, `usage`, `unused-targets` |
214
- | Export | `texture`, `rt`, `buffer`, `mesh`, `snapshot` |
219
+ | Export | `texture`, `rt`, `buffer`, `cbuffer`, `mesh`, `snapshot` |
215
220
  | Search | `search`, `counters` |
216
221
  | Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
217
222
  | Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
218
223
  | VFS | `ls`, `cat`, `tree` |
219
- | Remote | `remote connect`, `remote list`, `remote capture` |
224
+ | Remote | `remote connect`, `remote list`, `remote capture`, `remote setup`, `remote status`, `remote disconnect` |
220
225
  | Android | `android setup`, `android stop`, `android capture` |
221
226
  | Target control | `attach`, `capture-trigger`, `capture-list`, `capture-copy` |
222
227
  | Capture file | `sections`, `section`, `callstacks`, `gpus`, `thumbnail` |
@@ -58,7 +58,7 @@
58
58
  "name": "stats",
59
59
  "id": "stats",
60
60
  "help": "Show per-pass breakdown, top draws, largest resources.",
61
- "usage": "rdc stats [--json] [--no-header] [--jsonl] [-q]"
61
+ "usage": "rdc stats [--no-header] [--json] [--jsonl] [-q]"
62
62
  },
63
63
  {
64
64
  "name": "events",
@@ -88,13 +88,13 @@
88
88
  "name": "log",
89
89
  "id": "log",
90
90
  "help": "Show debug/validation messages from the capture.",
91
- "usage": "rdc log [--level CHOICE] [--eid INTEGER] [--json] [--no-header] [--jsonl] [-q]"
91
+ "usage": "rdc log [--level CHOICE] [--eid INTEGER] [--no-header] [--json] [--jsonl] [-q]"
92
92
  },
93
93
  {
94
94
  "name": "counters",
95
95
  "id": "counters",
96
96
  "help": "Query GPU performance counters.",
97
- "usage": "rdc counters [--list] [--eid INTEGER] [--name TEXT] [--json] [--no-header] [--jsonl] [-q]"
97
+ "usage": "rdc counters [--list] [--eid INTEGER] [--name TEXT] [--no-header] [--json] [--jsonl] [-q]"
98
98
  }
99
99
  ]
100
100
  },
@@ -113,7 +113,13 @@
113
113
  "name": "bindings",
114
114
  "id": "bindings",
115
115
  "help": "Show bound resources per shader stage.",
116
- "usage": "rdc bindings [EID] [--binding INTEGER] [--set INTEGER] [--json] [--no-header] [--jsonl] [-q]"
116
+ "usage": "rdc bindings [EID] [--binding INTEGER] [--set INTEGER] [--no-header] [--json] [--jsonl] [-q]"
117
+ },
118
+ {
119
+ "name": "descriptors",
120
+ "id": "descriptors",
121
+ "help": "Show the descriptors a draw actually used, resolved to resources.",
122
+ "usage": "rdc descriptors [EID] [--stage CHOICE] [--type TEXT] [--binding TEXT] [--no-header] [--json] [--jsonl] [-q]"
117
123
  }
118
124
  ]
119
125
  },
@@ -126,7 +132,7 @@
126
132
  "name": "resources",
127
133
  "id": "resources",
128
134
  "help": "List all resources.",
129
- "usage": "rdc resources [--json] [--type TEXT] [--name TEXT] [--sort CHOICE] [--no-header] [--jsonl] [-q]"
135
+ "usage": "rdc resources [--type TEXT] [--name TEXT] [--sort CHOICE] [--no-header] [--json] [--jsonl] [-q]"
130
136
  },
131
137
  {
132
138
  "name": "resource",
@@ -138,7 +144,7 @@
138
144
  "name": "usage",
139
145
  "id": "usage",
140
146
  "help": "Show resource usage (which events read/write a resource).",
141
- "usage": "rdc usage [RESOURCE-ID] [--all] [--type TEXT] [--usage TEXT] [--json] [--no-header] [--jsonl] [-q]"
147
+ "usage": "rdc usage [RESOURCE-ID] [--all] [--type TEXT] [--usage TEXT] [--no-header] [--json] [--jsonl] [-q]"
142
148
  },
143
149
  {
144
150
  "name": "shader",
@@ -150,7 +156,7 @@
150
156
  "name": "shaders",
151
157
  "id": "shaders",
152
158
  "help": "List unique shaders in capture.",
153
- "usage": "rdc shaders [--stage CHOICE] [--sort CHOICE] [--json] [--no-header] [--jsonl] [-q]"
159
+ "usage": "rdc shaders [--stage CHOICE] [--sort CHOICE] [--no-header] [--json] [--jsonl] [-q]"
154
160
  },
155
161
  {
156
162
  "name": "shader-map",
@@ -168,7 +174,7 @@
168
174
  "name": "passes",
169
175
  "id": "passes",
170
176
  "help": "List render passes.",
171
- "usage": "rdc passes [--json] [--deps] [--dot] [--graph] [--table] [--no-header] [--jsonl] [-q]"
177
+ "usage": "rdc passes [--deps] [--dot] [--graph] [--table] [--no-header] [--json] [--jsonl] [-q]"
172
178
  },
173
179
  {
174
180
  "name": "pass",
@@ -211,13 +217,13 @@
211
217
  "name": "rt",
212
218
  "id": "rt",
213
219
  "help": "Export render target as PNG.",
214
- "usage": "rdc rt [EID] [-o PATH] [--target INTEGER] [--raw] [--overlay CHOICE] [--width INTEGER] [--height INTEGER]"
220
+ "usage": "rdc rt [EID] [-o PATH] [--target INTEGER] [--depth] [--raw] [--overlay CHOICE] [--width INTEGER] [--height INTEGER]"
215
221
  },
216
222
  {
217
223
  "name": "mesh",
218
224
  "id": "mesh",
219
225
  "help": "Export post-transform mesh as OBJ.",
220
- "usage": "rdc mesh [EID] [--stage CHOICE] [-o PATH] [--json] [--no-header]"
226
+ "usage": "rdc mesh [EID] [--stage CHOICE] [-o PATH] [--json] [--no-header] [--position-attribute TEXT] [--position-index INTEGER] [--position-slot INTEGER] [--position-offset INTEGER]"
221
227
  },
222
228
  {
223
229
  "name": "snapshot",
@@ -236,7 +242,7 @@
236
242
  "name": "pixel",
237
243
  "id": "pixel",
238
244
  "help": "Query pixel history at (X, Y) for the current or specified event.",
239
- "usage": "rdc pixel <X> <Y> [EID] [--target INTEGER] [--sample INTEGER] [--json] [--no-header] [--jsonl] [-q]"
245
+ "usage": "rdc pixel <X> <Y> [EID] [--target INTEGER] [--sample INTEGER] [--no-header] [--json] [--jsonl] [-q]"
240
246
  },
241
247
  {
242
248
  "name": "pick-pixel",
@@ -0,0 +1,116 @@
1
+ [
2
+ [
3
+ {
4
+ "cmd": "rdc open hello_triangle.rdc",
5
+ "output": "opened: hello_triangle.rdc"
6
+ },
7
+ {
8
+ "cmd": "rdc info",
9
+ "output": "Capture: hello_triangle.rdc\nAPI: Vulkan\nEvents: 6\nDraw Calls: 1 (0 indexed, 1 non-indexed, 0 dispatches)\nClears: 0\nCopies: 0"
10
+ },
11
+ {
12
+ "cmd": "rdc draws",
13
+ "output": "EID\tTYPE\tTRIANGLES\tINSTANCES\tPASS\tMARKER\n11\tDraw\t12\t1\tColour Pass #1 (1 Target + Depth)\t-"
14
+ },
15
+ {
16
+ "cmd": "rdc pipeline 11",
17
+ "output": "EID\tAPI\tTOPOLOGY\tGFX_PIPE\tCOMP_PIPE\n11\tVulkan\tTriangleList\t114\t0"
18
+ },
19
+ {
20
+ "cmd": "rdc search \"main\"",
21
+ "output": "shader:111[vs]:12:EntryPoint(Vertex, main, \"main\", {\nshader:111[vs]:43:void main() {\nshader:112[ps]:12:EntryPoint(Fragment, main, \"main\", {\nshader:112[ps]:18:ExecutionMode(main, OriginUpperLeft);\nshader:112[ps]:32:void main() {"
22
+ },
23
+ {
24
+ "cmd": "rdc close",
25
+ "output": "session closed"
26
+ }
27
+ ],
28
+ [
29
+ {
30
+ "cmd": "rdc open hello_triangle.rdc",
31
+ "output": "opened: hello_triangle.rdc"
32
+ },
33
+ {
34
+ "cmd": "rdc tree / --depth 1",
35
+ "output": "//\n|-- capabilities\n|-- info\n|-- stats\n|-- log\n|-- events/\n|-- draws/\n|-- passes/\n|-- resources/\n|-- textures/\n|-- buffers/\n|-- shaders/\n|-- counters/\n\\-- current@"
36
+ },
37
+ {
38
+ "cmd": "rdc ls /draws/11",
39
+ "output": "pipeline\nshader\nbindings\ntargets\npostvs\ncbuffer\nvbuffer\nibuffer\ndescriptors\npixel"
40
+ },
41
+ {
42
+ "cmd": "rdc cat /draws/11/pipeline/topology",
43
+ "output": "eid: 11\ntopology: TriangleList"
44
+ },
45
+ {
46
+ "cmd": "rdc resources -q | wc -l",
47
+ "output": "46"
48
+ },
49
+ {
50
+ "cmd": "rdc draws --json | jq \".[0].triangles\"",
51
+ "output": "12"
52
+ },
53
+ {
54
+ "cmd": "rdc close",
55
+ "output": "session closed"
56
+ }
57
+ ],
58
+ [
59
+ {
60
+ "cmd": "rdc open hello_triangle.rdc",
61
+ "output": "opened: hello_triangle.rdc"
62
+ },
63
+ {
64
+ "cmd": "rdc pick-pixel 300 300 11",
65
+ "output": "r=0.3373 g=0.3373 b=0.3373 a=0.5216"
66
+ },
67
+ {
68
+ "cmd": "rdc pixel 300 300 11",
69
+ "output": "EID\tFRAG\tDEPTH\tPASSED\tFLAGS\n6\t0\t-\tyes\t-\n11\t0\t0.9581\tyes\t-"
70
+ },
71
+ {
72
+ "cmd": "rdc debug pixel 11 300 300",
73
+ "output": "stage: ps\neid: 11\nsteps: 80\ninputs: _99 = [-107374176.0 -107374176.0 -107374176.0 -107374176.0]\noutputs: = [0.0]"
74
+ },
75
+ {
76
+ "cmd": "rdc debug pixel 11 300 300 --trace",
77
+ "output": "STEP\tINSTR\tFILE\tLINE\tVAR\tTYPE\tVALUE\n0\t78\t-\t0\t_99\tfloat\t-107374176.0 -107374176.0 -107374176.0 -107374176.0\n1\t79\t-\t0\t_79\tfloat\t-0.015102430246770382 -0.3927634656429291 4.36358118057251\n2\t80\t-\t0\t_80\tfloat\t0.01510667521506548 -8.669495582580566e-05 0.0010061264038085938\n3\t81\t-\t0\t\tfloat\t0.0\n3\t81\t-\t0\t_76\tfloat\t0.01510667521506548 -8.669495582580566e-05 0.0010061264038085938\n4\t82\t-\t0\t\tfloat\t0.0\n4\t82\t-\t0\t_82\tfloat\t-0.015102430246770382 -0.3927634656429291 4.36358118057251\n... (138 more)"
78
+ },
79
+ {
80
+ "cmd": "rdc close",
81
+ "output": "session closed"
82
+ }
83
+ ],
84
+ [
85
+ {
86
+ "cmd": "rdc open hello_triangle.rdc",
87
+ "output": "opened: hello_triangle.rdc"
88
+ },
89
+ {
90
+ "cmd": "rdc draws --json",
91
+ "output": "[\n {\n \"eid\": 11,\n \"type\": \"Draw\",\n \"triangles\": 12,\n \"instances\": 1,\n \"pass\": \"Colour Pass #1 (1 Target + Depth)\",\n \"marker\": \"-\"\n }\n]"
92
+ },
93
+ {
94
+ "cmd": "rdc assert-count draws --expect 1 --op eq",
95
+ "output": "pass: draws = 1 (expected eq 1)"
96
+ },
97
+ {
98
+ "cmd": "rdc assert-count events --expect 5 --op ge",
99
+ "output": "pass: events = 6 (expected ge 5)"
100
+ },
101
+ {
102
+ "cmd": "rdc close",
103
+ "output": "session closed"
104
+ }
105
+ ],
106
+ [
107
+ {
108
+ "cmd": "rdc diff before.rdc after.rdc --draws",
109
+ "output": "STATUS\tEID_A\tEID_B\tMARKER\tTYPE\tTRI_A\tTRI_B\tINST_A\tINST_B\tCONFIDENCE\n=\t11\t11\t-\tDraw\t12\t12\t1\t1\tmedium"
110
+ },
111
+ {
112
+ "cmd": "rdc diff before.rdc after.rdc --stats",
113
+ "output": "STATUS\tPASS\tDRAWS_A\tDRAWS_B\tDRAWS_DELTA\tTRI_A\tTRI_B\tTRI_DELTA\tDISP_A\tDISP_B\tDISP_DELTA\n=\tvkCmdBeginRenderPass(C=Clear, D=Clear)\t1\t1\t0\t12\t12\t0\t0\t0\t0"
114
+ }
115
+ ]
116
+ ]
@@ -52,7 +52,9 @@ rdc draws --no-header
52
52
 
53
53
  {"# Quiet — IDs only, great for xargs loops"}
54
54
  rdc draws -q
55
- {"# → 11\n14\n19"}
55
+ {"# → 11"}
56
+ {"# 14"}
57
+ {"# 19"}
56
58
 
57
59
  {"# Combine: export all draw render targets"}
58
60
  for eid in $(rdc draws -q); do
@@ -171,7 +173,9 @@ rdc snapshot 142 -o ./snapshot/
171
173
  {"# Individual exports"}
172
174
  rdc texture 5 -o albedo.png {"# specific texture"}
173
175
  rdc buffer 3 -o vertex_data.bin {"# raw buffer data"}
174
- rdc mesh 142 -o geometry.obj {"# post-transform mesh"}</code></pre>
176
+ rdc mesh 142 -o geometry.obj {"# post-transform mesh"}
177
+ rdc rt 142 --depth -o depth.png {"# raw depth attachment"}
178
+ rdc cbuffer 142 --stage ps --binding 0 {"# decode constant buffer to JSON"}</code></pre>
175
179
 
176
180
  <h2 id="shell-pipelines">Shell Pipeline Power</h2>
177
181
 
@@ -283,12 +287,6 @@ rdc passes --json | jq '.[] | select(.load_ops[]? == "Clear" and .store_ops[]? =
283
287
  <pre><code>{"# Per-pass reads/writes/load/store table"}
284
288
  rdc passes --deps --table
285
289
 
286
- {"# TBR/mobile: identify passes that switch render targets frequently"}
287
- rdc passes --switches
288
-
289
- {"# Passes with RT_SWITCHES > 2 (high bandwidth pressure on tile-based GPUs)"}
290
- rdc passes --switches --json | jq '.[] | select(.rt_switches > 2) | {"{ name, rt_switches }"}'
291
-
292
290
  {"# Full dependency graph as DOT (render with Graphviz)"}
293
291
  rdc passes --deps --dot | dot -Tsvg -o passes.svg</code></pre>
294
292
 
@@ -108,7 +108,11 @@ export RENDERDOC_PYTHON_PATH=$PWD/build/lib</code></pre>
108
108
  <pre><code>rdc doctor</code></pre>
109
109
  <p>
110
110
  This checks renderdoc module availability, Python version compatibility,
111
- and system configuration.
111
+ and system configuration. It also warns when more than one
112
+ <code>VK_LAYER_RENDERDOC_Capture</code> Vulkan layer is registered (a
113
+ system-installed RenderDoc plus the rdc-managed one create a split-brain
114
+ where the loader picks one non-deterministically and capture can silently
115
+ time out).
112
116
  </p>
113
117
 
114
118
  <h2>Shell Completions</h2>
@@ -451,6 +451,9 @@ rdc pipeline</code></pre>
451
451
  <pre><code># Local mode (default)
452
452
  rdc open capture.rdc
453
453
 
454
+ # Force a specific replay GPU on a multi-GPU host
455
+ rdc open capture.rdc --gpu INDEX|NAME|DEVICEID
456
+
454
457
  # Proxy mode
455
458
  rdc open capture.rdc --proxy HOST[:PORT]|adb://SERIAL
456
459
 
@@ -475,6 +478,8 @@ rdc remote capture APP [-o OUTPUT]</code></pre>
475
478
  <li><code>--android</code> is mutually exclusive with <code>--proxy</code>, <code>--connect</code>, and <code>--listen</code>.</li>
476
479
  <li><code>--listen</code> can be combined with <code>--proxy</code> for Split+Proxy setups.</li>
477
480
  <li>For <code>rdc open</code>, <code>--remote</code> is a deprecated alias for <code>--proxy</code> (hidden, shows deprecation warning).</li>
481
+ <li><code>--gpu INDEX|NAME|DEVICEID</code> forces the replay GPU on a multi-GPU host, by 0-based index, name substring, or device ID (overrides auto-selection).</li>
482
+ <li>Remote and <code>--proxy</code> hosts given as <code>localhost</code> are auto-normalized to <code>127.0.0.1</code>, because <code>renderdoccmd</code> remoteserver is IPv4-only.</li>
478
483
  <li>The daemon has a 30-minute idle timeout by default. Any command resets the timer.</li>
479
484
  <li>IPv6 is not currently supported (<code>HOST:PORT</code> parsing uses <code>rsplit(":", 1)</code>).</li>
480
485
  </ul>
@@ -107,9 +107,6 @@ rdc passes
107
107
  # Per-pass dependency graph (reads/writes/load/store)
108
108
  rdc passes --deps --table
109
109
 
110
- # Add RT_SWITCHES column for TBR/mobile bandwidth analysis
111
- rdc passes --switches
112
-
113
110
  # Inspect attachments, load/store ops, and dimensions for a pass
114
111
  rdc pass GBuffer
115
112
 
@@ -7,3 +7,5 @@ select = ["E", "W", "F", "I", "N", "UP", "B"]
7
7
  [lint.per-file-ignores]
8
8
  # Mock renderdoc module mirrors RenderDoc's CamelCase API names
9
9
  "tests/mocks/mock_renderdoc.py" = ["N802", "N803", "N815"]
10
+ # Method-surface stubs mirror RenderDoc's CamelCase API names
11
+ "tests/integration/test_mock_api_sync.py" = ["N802"]
@@ -28,7 +28,7 @@ CATEGORIES: list[tuple[str, str, str | None, list[str]]] = [
28
28
  "info", "stats", "events", "draws", "event", "draw", "log", "counters",
29
29
  ]),
30
30
  ("Draw Analysis", "draw-analysis", None, [
31
- "pipeline", "bindings",
31
+ "pipeline", "bindings", "descriptors",
32
32
  ]),
33
33
  ("Resources", "resources-section", None, [
34
34
  "resources", "resource", "usage", "shader", "shaders", "shader-map",
@@ -440,8 +440,19 @@ def copy_artifacts(build_dir: Path, install_dir: Path, plat: str) -> None:
440
440
  _log(f"artifacts copied to {install_dir}")
441
441
 
442
442
 
443
- def _install_vulkan_layer(install_dir: Path, build_dir: Path) -> None:
444
- """Copy Vulkan layer JSON and register as implicit layer on Windows."""
443
+ def _parse_version(version: str) -> tuple[int, int]:
444
+ """Parse a RenderDoc tag like ``v1.41`` into ``(major, minor)``."""
445
+ parts = version.lstrip("v").split(".")
446
+ return int(parts[0]), int(parts[1])
447
+
448
+
449
+ def _install_vulkan_layer(install_dir: Path, build_dir: Path, version: str = RDOC_TAG) -> None:
450
+ """Copy Vulkan layer JSON and register as implicit layer on Windows.
451
+
452
+ Upstream substitutes ``renderdoc.json`` via CMake ``configure_file``, but that block is
453
+ UNIX-only, so on Windows the template ships with unsubstituted ``@...@`` placeholders.
454
+ Resolve every templated field here so the layer can self-enable.
455
+ """
445
456
  src_dir = build_dir / "renderdoc"
446
457
 
447
458
  # Find layer JSON from build output
@@ -459,10 +470,23 @@ def _install_vulkan_layer(install_dir: Path, build_dir: Path) -> None:
459
470
 
460
471
  import json
461
472
 
473
+ major, minor = _parse_version(version)
462
474
  data = json.loads(layer_src.read_text(encoding="utf-8"))
463
- data["layer"]["library_path"] = ".\\renderdoc.dll"
475
+ layer = data["layer"]
476
+ layer["name"] = "VK_LAYER_RENDERDOC_Capture"
477
+ layer["library_path"] = ".\\renderdoc.dll"
478
+ layer["implementation_version"] = str(minor)
479
+ layer["enable_environment"] = {"ENABLE_VULKAN_RENDERDOC_CAPTURE": "1"}
480
+ layer["disable_environment"] = {f"DISABLE_VULKAN_RENDERDOC_CAPTURE_{major}_{minor}": "1"}
481
+
482
+ serialized = json.dumps(data, indent=2)
483
+ if "@" in serialized:
484
+ raise RuntimeError(
485
+ f"Vulkan layer manifest still contains unsubstituted template vars: {serialized}"
486
+ )
487
+
464
488
  layer_dst = install_dir / "renderdoc.json"
465
- layer_dst.write_text(json.dumps(data, indent=2), encoding="utf-8")
489
+ layer_dst.write_text(serialized, encoding="utf-8")
466
490
  _log(f"Vulkan layer JSON installed to {layer_dst}")
467
491
 
468
492
  # Register in Windows registry
@@ -789,7 +813,7 @@ def main(argv: list[str] | None = None) -> None:
789
813
  copy_artifacts(build_dir, install_dir, plat)
790
814
 
791
815
  if plat == "windows":
792
- _install_vulkan_layer(install_dir, build_dir)
816
+ _install_vulkan_layer(install_dir, build_dir, args.version)
793
817
 
794
818
  _log("=== Done ===")
795
819
  _log(f' export RENDERDOC_PYTHON_PATH="{install_dir}"')
@@ -7,6 +7,7 @@ callers never need ``sys.platform`` checks themselves.
7
7
  from __future__ import annotations
8
8
 
9
9
  import os
10
+ import shlex
10
11
  import signal
11
12
  import subprocess
12
13
  import sys
@@ -18,8 +19,25 @@ _WIN: bool = sys.platform == "win32"
18
19
  _MAC: bool = sys.platform == "darwin"
19
20
 
20
21
 
22
+ def join_cmdline(args: list[str]) -> str:
23
+ """Join *args* into a single command-line string, platform-appropriately.
24
+
25
+ On Windows, uses subprocess.list2cmdline so that CommandLineToArgvW
26
+ parses it correctly (double-quote wrapping, backslash escaping).
27
+ On POSIX, uses shlex.join (single-quote wrapping).
28
+ """
29
+ return subprocess.list2cmdline(args) if _WIN else shlex.join(args)
30
+
31
+
21
32
  def data_dir() -> Path:
22
- """Return the per-user data directory for rdc."""
33
+ """Return the per-user data directory for rdc.
34
+
35
+ Honours the ``RDC_DATA_DIR`` environment override (mirrors ``RDC_SESSION``);
36
+ when unset, falls back to the per-user home-based default.
37
+ """
38
+ override = os.environ.get("RDC_DATA_DIR")
39
+ if override:
40
+ return Path(override)
23
41
  if _WIN:
24
42
  base = os.environ.get("LOCALAPPDATA", str(Path.home()))
25
43
  return Path(base) / "rdc"
@@ -26,10 +26,10 @@ Follow this session lifecycle for any capture analysis task:
26
26
  - Split thin-client: `rdc open --connect host:port --token TOKEN`
27
27
  - Android device: `rdc open capture.rdc --android [--serial SERIAL]`
28
28
  2. **Inspect** metadata: `rdc info`, `rdc stats`, `rdc events`
29
- 3. **Navigate** the VFS: `rdc ls /`, `rdc ls /textures`, `rdc cat /pipelines/0`
29
+ 3. **Navigate** the VFS: `rdc ls /`, `rdc ls /textures`, `rdc cat /draws/0/pipeline/summary`
30
30
  4. **Analyze** specifics: `rdc shaders`, `rdc pipeline`, `rdc resources`, `rdc bindings`
31
- 5. **Debug** shaders: `rdc debug pixel X Y`, `rdc debug vertex EID VTXID`, `rdc debug thread EID GX GY GZ`
32
- 6. **Export** data: `rdc texture EID -o out.png`, `rdc rt EID`, `rdc buffer EID -o buf.bin`, `rdc log`
31
+ 5. **Debug** shaders: `rdc debug pixel EID X Y`, `rdc debug vertex EID VTXID`, `rdc debug thread EID GX GY GZ`
32
+ 6. **Export** data: `rdc texture ID -o out.png`, `rdc rt EID`, `rdc buffer ID -o buf.bin`, `rdc cbuffer EID --stage ps --binding 0`, `rdc log`
33
33
  7. **Close** the session: `rdc close`
34
34
 
35
35
  ### Session Management
@@ -118,15 +118,16 @@ rdc draws --pass "GBuffer" --json
118
118
  ### Trace a pixel
119
119
 
120
120
  ```bash
121
- rdc debug pixel 512 384
122
- rdc debug pixel 512 384 --json # structured output
123
- rdc debug pixel 512 384 --trace # full step-by-step trace
121
+ rdc debug pixel 1024 512 384 # EID first, then X Y
122
+ rdc debug pixel 1024 512 384 --json # structured output
123
+ rdc debug pixel 1024 512 384 --trace # full step-by-step trace
124
124
  ```
125
125
 
126
126
  ### Search shaders by name or source
127
127
 
128
128
  ```bash
129
- rdc search "main" --type shader
129
+ rdc search "main" # regex search over shader disassembly
130
+ rdc search "Sample" --stage ps -C 2
130
131
  rdc shaders --name "GBuffer*"
131
132
  ```
132
133
 
@@ -134,7 +135,15 @@ rdc shaders --name "GBuffer*"
134
135
 
135
136
  ```bash
136
137
  rdc rt EID -o output.png
137
- rdc texture EID --format png -o tex.png
138
+ rdc rt EID --depth -o depth.png # export the raw depth attachment
139
+ rdc texture ID -o tex.png # export a texture by resource ID (PNG)
140
+ ```
141
+
142
+ ### Decode a constant buffer
143
+
144
+ ```bash
145
+ rdc cbuffer EID --stage ps --binding 0 # decode to JSON
146
+ rdc cbuffer EID --stage vs --binding 0 --raw -o cbuffer.bin
138
147
  ```
139
148
 
140
149
  ### Browse VFS paths
@@ -142,7 +151,8 @@ rdc texture EID --format png -o tex.png
142
151
  ```bash
143
152
  rdc ls /
144
153
  rdc ls /textures -l
145
- rdc tree /pipelines --depth 2
154
+ rdc tree /draws/42/pipeline --depth 2 # pipeline state lives under /draws/<eid>/pipeline/
155
+ rdc cat /draws/42/pipeline/summary
146
156
  rdc cat /events/42
147
157
  ```
148
158
 
@@ -168,11 +178,11 @@ rdc-cli provides assertion commands that exit non-zero on failure, designed for
168
178
 
169
179
  | Command | Purpose |
170
180
  |---------|---------|
171
- | `rdc assert-pixel X Y --expect R,G,B,A` | Assert pixel color at coordinates |
181
+ | `rdc assert-pixel EID X Y --expect "R G B A"` | Assert pixel RGBA (4 space-separated floats) at EID/coordinates |
172
182
  | `rdc assert-clean` | Assert no validation errors in capture |
173
- | `rdc assert-count --type DrawIndexed --min N` | Assert minimum draw call count |
174
- | `rdc assert-state FIELD VALUE` | Assert pipeline state field matches value |
175
- | `rdc assert-image EID --ref reference.png` | Assert render target matches reference image |
183
+ | `rdc assert-count <what> --expect N [--op CHOICE]` | Assert a capture metric (e.g. `draws`) satisfies a comparison |
184
+ | `rdc assert-state EID KEY-PATH --expect VALUE` | Assert pipeline state value at EID matches expected |
185
+ | `rdc assert-image EXPECTED ACTUAL [--threshold FLOAT]` | Compare two image files pixel-by-pixel |
176
186
 
177
187
  Example CI script:
178
188
 
@@ -181,8 +191,8 @@ Example CI script:
181
191
  set -e
182
192
  rdc open test_capture.rdc
183
193
  rdc assert-clean
184
- rdc assert-count --type DrawIndexed --min 10
185
- rdc assert-pixel 256 256 --expect 1.0,0.0,0.0,1.0
194
+ rdc assert-count draws --expect 10 --op ge
195
+ rdc assert-pixel 1024 256 256 --expect "1.0 0.0 0.0 1.0"
186
196
  rdc close
187
197
  ```
188
198
 
@@ -191,13 +201,13 @@ rdc close
191
201
  Modify and replay shaders without recompiling the application:
192
202
 
193
203
  ```bash
194
- rdc shader-encodings EID # list available encodings
195
- rdc shader EID --source > s.frag # extract shader source
204
+ rdc shader-encodings # list available encodings
205
+ rdc shader EID ps --source > s.frag # extract shader source
196
206
  # ... edit s.frag ...
197
- rdc shader-build s.frag --encoding glsl # compile edited shader
198
- rdc shader-replace EID s.frag # hot-swap into capture
199
- rdc shader-restore EID # revert single shader
200
- rdc shader-restore-all # revert all modifications
207
+ rdc shader-build s.frag --stage ps # compile; prints the built shader ID
208
+ rdc shader-replace EID ps --with <ID> # hot-swap built shader ID into capture
209
+ rdc shader-restore EID ps # revert single shader (STAGE required)
210
+ rdc shader-restore-all # revert all modifications
201
211
  ```
202
212
 
203
213
  ## Remote Capture Workflow
@@ -244,6 +254,7 @@ Common failure categories (conceptual, not literal error strings — map from th
244
254
  - **version mismatch** — host and target RenderDoc versions differ. Re-run `rdc setup-renderdoc` or `rdc setup-renderdoc --android` to align.
245
255
  - **inject failed / ident=0** — injection blocked (Android EMUI, macOS SIP, Windows privilege). Run `rdc doctor` and check the platform-specific detail.
246
256
  - **OpenCapture unsupported** — local GPU can't replay the capture's API surface; switch to `--proxy` or `--android` remote replay.
257
+ - **duplicate Vulkan layer** — `rdc doctor` warns when more than one `VK_LAYER_RENDERDOC_Capture` Vulkan layer is registered (a system-installed RenderDoc plus the rdc-managed one create a split-brain). The loader then picks one non-deterministically and capture can silently time out; unregister the extra manifest so only one remains.
247
258
  - **not loaded / no session** — forgot `rdc open`; use `rdc status` to inspect.
248
259
 
249
260
  For long operations (large capture transfers, remote replay init), the CLI has limited progress feedback — this is a known UX gap, not a hang. Wait up to the `--timeout` value before concluding failure.