rdc-cli 0.4.3__tar.gz → 0.5.0__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.
- rdc_cli-0.5.0/.github/ISSUE_TEMPLATE/bug_report.yml +65 -0
- rdc_cli-0.5.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
- rdc_cli-0.5.0/.github/ISSUE_TEMPLATE/feature_request.yml +37 -0
- rdc_cli-0.5.0/.github/PULL_REQUEST_TEMPLATE.md +17 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/workflows/aur.yml +1 -0
- rdc_cli-0.5.0/CONTRIBUTING.md +92 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/PKG-INFO +37 -8
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/README.md +36 -7
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/data/commands.json +27 -3
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/examples.astro +37 -3
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/remote.astro +54 -2
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/usage.astro +27 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/pixi.toml +5 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/pyproject.toml +1 -1
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/e2e_test.py +8 -13
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen-commands.py +3 -2
- rdc_cli-0.5.0/scripts/setup_android_tools.py +87 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_build_renderdoc.py +270 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_platform.py +14 -1
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_skills/SKILL.md +44 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_skills/references/commands-quick-ref.md +62 -1
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/capture_core.py +20 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/cli.py +20 -1
- rdc_cli-0.5.0/src/rdc/commands/android.py +506 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/doctor.py +38 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/info.py +12 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/remote.py +12 -7
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/resources.py +106 -15
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/session.py +106 -2
- rdc_cli-0.5.0/src/rdc/commands/setup_renderdoc.py +103 -0
- rdc_cli-0.5.0/src/rdc/commands/unused_targets.py +43 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/daemon_server.py +2 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/discover.py +39 -1
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/capture.py +4 -3
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/pixel.py +0 -2
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/query.py +56 -3
- rdc_cli-0.5.0/src/rdc/handlers/unused.py +40 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/remote_core.py +5 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/remote_state.py +1 -1
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/services/query_service.py +364 -8
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/PKG-INFO +37 -8
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/SOURCES.txt +16 -0
- rdc_cli-0.5.0/src/rdc_cli.egg-info/entry_points.txt +2 -0
- rdc_cli-0.5.0/tests/fixtures/gles-multipass-debug.apk +0 -0
- rdc_cli-0.5.0/tests/fixtures/gles-triangle-debug.apk +0 -0
- rdc_cli-0.5.0/tests/fixtures/gles_android_mali.rdc +0 -0
- rdc_cli-0.5.0/tests/fixtures/gles_multipass_mali.rdc +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/mocks/mock_renderdoc.py +6 -3
- rdc_cli-0.5.0/tests/unit/test_android_commands.py +669 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_build_renderdoc.py +269 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_discover.py +21 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_doctor.py +94 -4
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_draws_events_daemon.py +170 -1
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_info_commands.py +63 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pass_deps.py +209 -3
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pick_pixel_daemon.py +0 -7
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_shader.py +18 -4
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_platform.py +48 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_query_service.py +490 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_remote_commands.py +29 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_remote_core.py +15 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_resources_commands.py +158 -5
- rdc_cli-0.5.0/tests/unit/test_rt_switches.py +243 -0
- rdc_cli-0.5.0/tests/unit/test_session_commands.py +383 -0
- rdc_cli-0.5.0/tests/unit/test_setup_renderdoc.py +158 -0
- rdc_cli-0.5.0/tests/unit/test_unused_targets.py +371 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_windows_compat.py +40 -0
- rdc_cli-0.4.3/src/rdc/commands/setup_renderdoc.py +0 -29
- rdc_cli-0.4.3/src/rdc_cli.egg-info/entry_points.txt +0 -2
- rdc_cli-0.4.3/tests/unit/test_session_commands.py +0 -188
- rdc_cli-0.4.3/tests/unit/test_setup_renderdoc.py +0 -32
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.commitlintrc.yml +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.githooks/pre-commit +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.githooks/pre-push +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/CODEOWNERS +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/workflows/ci.yml +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/workflows/commitlint.yml +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/workflows/docs.yml +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.gitignore +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.python-version +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.release-please-manifest.json +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/LICENSE +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/Makefile +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/SECURITY.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/aur/PKGBUILD +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/aur/stable/PKGBUILD +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docker/Dockerfile +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/astro.config.mjs +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/package-lock.json +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/package.json +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/public/.nojekyll +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/public/favicon.svg +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Commands.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Demo.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Features.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Footer.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Hero.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Install.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Navbar.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Philosophy.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Terminal.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/data/replay.json +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/data/stats.json +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/layouts/Base.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/layouts/Docs.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/commands.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/design.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/index.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/install.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/vfs.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/index.astro +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/styles/global.css +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tailwind.config.mjs +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tapes/pipeline.tape +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tapes/quickstart.tape +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tests/validate.mjs +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tsconfig.json +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/mypy.ini +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-03-bugfix-p2-batch/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-03-bugfix-p2-batch/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-03-bugfix-p2-batch/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-04-w6-windows-bugfixes/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-04-w6-windows-bugfixes/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-04-w6-windows-bugfixes/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-core-checks/specs/foundation/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/specs/daemon/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/specs/daemon/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/specs/tooling/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-pixi-env/specs/tooling/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/specs/session/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/specs/architecture/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/specs/daemon/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/daemon/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/foundation/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-draws-events/specs/daemon/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-resources-passes/specs/daemon/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ai-agent-skill/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ai-agent-skill/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ai-agent-skill/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-docs-automation/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-docs-automation/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-docs-automation/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-image-compare/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-image-compare/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-skill-auto-install/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-skill-auto-install/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-skill-auto-install/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b17-eid-mutation/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b17-eid-mutation/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b17-eid-mutation/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-docs-polish/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-docs-polish/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-docs-polish/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-aur-build/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-aur-build/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-aur-build/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase-w2-build-script/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase-w2-build-script/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase-w2-build-script/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-m-macos-support/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-m-macos-support/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-m-macos-support/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-design-deviation-fixes/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-design-deviation-fixes/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-design-deviation-fixes/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-dev-install-enhancement/proposal.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-dev-install-enhancement/tasks.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-dev-install-enhancement/test-plan.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/architecture/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/ci/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/daemon/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/foundation/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/packaging/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/session/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/tooling/spec.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/pixi.lock +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/release-please-config.json +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/ruff.toml +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/build-renderdoc.sh +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/build_renderdoc.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/capture_fixture.sh +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/dev_install.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/ensure-renderdoc.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/ensure-renderdoc.sh +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/ensure-skill-link.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen-replay.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen-skill-ref.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen-stats.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen_and_check.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/setup-renderdoc.sh +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/setup-vulkan-samples.sh +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/setup_vulkan_samples.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/verify-package.sh +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/verify_package.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/setup.cfg +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/__init__.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_skills/__init__.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_transport.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/adapter.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/_helpers.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/assert_ci.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/assert_image.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/capture.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/capture_control.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/capturefile.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/completion.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/counters.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/debug.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/diff.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/events.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/export.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/install_skill.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/mesh.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/pick_pixel.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/pipeline.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/pixel.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/script.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/search.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/serve.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/shader_edit.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/snapshot.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/tex_stats.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/unix_helpers.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/usage.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/vfs.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/daemon_client.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/__init__.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/alignment.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/draws.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/framebuffer.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/pipeline.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/resources.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/stats.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/summary.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/formatters/json_fmt.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/formatters/kv.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/formatters/options.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/formatters/tsv.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/__init__.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/_helpers.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/_types.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/buffer.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/capturefile.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/core.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/debug.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/descriptor.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/pipe_state.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/script.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/shader.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/shader_edit.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/texture.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/vfs.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/image_compare.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/protocol.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/services/__init__.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/services/diff_service.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/services/session_service.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/session_state.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/target_state.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/vfs/__init__.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/vfs/formatter.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/vfs/router.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/vfs/tree_cache.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/requires.txt +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/top_level.txt +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/conftest.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/__init__.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/blackbox_test_catalog.md +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/conftest.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/e2e_helpers.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_advanced.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_assert.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_capture.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_capturefile.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_debug.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_diff.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_export.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_formats.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_presession.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_query.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_session.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_shader_edit.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_vfs.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/fixtures/hello_triangle.rdc +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/fixtures/vkcube.rdc +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/fixtures/vkcube_validation.rdc +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_build_renderdoc_integration.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_daemon_handlers_real.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_mock_api_sync.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_real_replay.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_vulkan_samples.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/conftest.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_adapter.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_assert_ci_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_assert_image_command.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_binary_daemon.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_buffer_decode.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capture.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capture_control.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capture_core.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capture_handlers.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capturefile_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capturefile_handlers.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_ci_files.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_cli.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_cli_session_flag.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_completion.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_count_shadermap.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_counters_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_counters_daemon.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_crash_regression.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_output_quality.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_pipeline_extended.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_server_unit.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_shader_api_fix.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_shader_extended.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_transport.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_debug_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_debug_handlers.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_descriptors_daemon.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_dev_install.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_alignment.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_command.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_draws.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_framebuffer.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_pipeline.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_resources.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_service.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_stats.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_summary.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_draws_daemon.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_draws_events_cli.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_eid_completion.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_events_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_export_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_export_overlay.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_fix1_draws_pass_name.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_fix2_vfs_intermediate_dirs.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_formatters.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_formatters_kv.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_gen_skill_ref.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_handlers_remote.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_image_compare.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_install_skill.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_json_errors.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_keep_remote.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_mesh_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_mesh_handler.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_mock_capture_types.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_mock_renderdoc.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_open_remote.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_output_options.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_overlay_handler.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pick_pixel_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_cli_phase27.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_daemon.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_section_routing.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_state.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pixel_history_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pixel_history_daemon.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pixi_files.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_protocol.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_quickfix_batch.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_remote_replay.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_remote_state.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_require_pipe.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_resource_semantic_completion.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_resources_filter.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_script_command.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_script_handler.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_search.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_semantic_completion.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_serve.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_session_completion.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_session_service.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_session_state.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_setup_vulkan_samples.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_shader_edit_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_shader_edit_handlers.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_shader_preload.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_skill_structure.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_snapshot_command.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_split_binary.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_split_core.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_target_state.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_tex_stats_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_tex_stats_handler.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_tooling_files.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_unix_helpers_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_usage_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_usage_daemon.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_binary.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_commands.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_completion.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_daemon.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_formatter.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_router.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_tree_cache.py +0 -0
- {rdc_cli-0.4.3 → rdc_cli-0.5.0}/uv.lock +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Something isn't working as expected
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Thanks for reporting! Please fill in as much detail as you can.
|
|
9
|
+
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: what-happened
|
|
12
|
+
attributes:
|
|
13
|
+
label: What happened?
|
|
14
|
+
description: Describe the bug. What did you do, what did you expect, and what happened instead?
|
|
15
|
+
placeholder: |
|
|
16
|
+
Steps to reproduce:
|
|
17
|
+
1. Run `rdc open capture.rdc`
|
|
18
|
+
2. Run `rdc draws`
|
|
19
|
+
3. ...
|
|
20
|
+
|
|
21
|
+
Expected: ...
|
|
22
|
+
Actual: ...
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: doctor-output
|
|
28
|
+
attributes:
|
|
29
|
+
label: "`rdc doctor` output"
|
|
30
|
+
description: Paste the output of `rdc doctor` (helps us understand your environment).
|
|
31
|
+
render: text
|
|
32
|
+
validations:
|
|
33
|
+
required: false
|
|
34
|
+
|
|
35
|
+
- type: input
|
|
36
|
+
id: os
|
|
37
|
+
attributes:
|
|
38
|
+
label: OS / Platform
|
|
39
|
+
placeholder: "e.g. Ubuntu 24.04, Windows 11, macOS 15, Android 12 (EMUI)"
|
|
40
|
+
validations:
|
|
41
|
+
required: true
|
|
42
|
+
|
|
43
|
+
- type: input
|
|
44
|
+
id: python
|
|
45
|
+
attributes:
|
|
46
|
+
label: Python version
|
|
47
|
+
placeholder: "e.g. 3.12.3"
|
|
48
|
+
validations:
|
|
49
|
+
required: false
|
|
50
|
+
|
|
51
|
+
- type: input
|
|
52
|
+
id: rdc-version
|
|
53
|
+
attributes:
|
|
54
|
+
label: rdc-cli version
|
|
55
|
+
placeholder: "e.g. 0.4.4 (from `rdc --version`)"
|
|
56
|
+
validations:
|
|
57
|
+
required: true
|
|
58
|
+
|
|
59
|
+
- type: textarea
|
|
60
|
+
id: capture
|
|
61
|
+
attributes:
|
|
62
|
+
label: Capture file
|
|
63
|
+
description: If possible, attach a minimal `.rdc` file that reproduces the issue, or describe the GPU API / hardware involved.
|
|
64
|
+
validations:
|
|
65
|
+
required: false
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Suggest a new feature or improvement
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Describe the use case first — what problem are you solving?
|
|
9
|
+
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: problem
|
|
12
|
+
attributes:
|
|
13
|
+
label: Problem / Use case
|
|
14
|
+
description: What are you trying to do that isn't possible or is too difficult today?
|
|
15
|
+
placeholder: "I'm trying to ... but currently I have to ..."
|
|
16
|
+
validations:
|
|
17
|
+
required: true
|
|
18
|
+
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: solution
|
|
21
|
+
attributes:
|
|
22
|
+
label: Proposed solution
|
|
23
|
+
description: If you have ideas on the CLI interface, include example invocations.
|
|
24
|
+
placeholder: |
|
|
25
|
+
```bash
|
|
26
|
+
rdc frobnicate --flag value
|
|
27
|
+
```
|
|
28
|
+
validations:
|
|
29
|
+
required: false
|
|
30
|
+
|
|
31
|
+
- type: textarea
|
|
32
|
+
id: alternatives
|
|
33
|
+
attributes:
|
|
34
|
+
label: Alternatives considered
|
|
35
|
+
description: Have you tried any workarounds? Other tools that solve this?
|
|
36
|
+
validations:
|
|
37
|
+
required: false
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## What
|
|
2
|
+
|
|
3
|
+
<!-- One-sentence summary of what this PR does. -->
|
|
4
|
+
|
|
5
|
+
## Why
|
|
6
|
+
|
|
7
|
+
<!-- The problem or motivation. Link to the issue if there is one (Fixes #123). -->
|
|
8
|
+
|
|
9
|
+
## How
|
|
10
|
+
|
|
11
|
+
<!-- Brief description of the approach. Call out any non-obvious decisions. -->
|
|
12
|
+
|
|
13
|
+
## Test plan
|
|
14
|
+
|
|
15
|
+
- [ ] `pixi run check` passes (lint + typecheck + tests)
|
|
16
|
+
- [ ] Added/updated unit tests
|
|
17
|
+
- [ ] Manual testing with a real `.rdc` capture (if applicable)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Contributing to rdc-cli
|
|
2
|
+
|
|
3
|
+
Thanks for your interest in rdc-cli! Whether it's a bug report, feature idea, or code contribution — all are welcome.
|
|
4
|
+
|
|
5
|
+
## Reporting issues
|
|
6
|
+
|
|
7
|
+
Found a bug or have a feature request? Please [open an issue](https://github.com/BANANASJIM/rdc-cli/issues).
|
|
8
|
+
|
|
9
|
+
A good issue includes:
|
|
10
|
+
|
|
11
|
+
- **Bug reports**: what you did, what you expected, what happened instead. Include `rdc doctor` output and your OS/Python version. A minimal `.rdc` capture to reproduce is ideal but not required.
|
|
12
|
+
- **Feature requests**: describe the use case (what problem are you solving?), not just the solution. If you have thoughts on the CLI interface, include an example invocation.
|
|
13
|
+
- **Questions**: if you're unsure whether something is a bug or a usage question, open an issue anyway — we'll sort it out.
|
|
14
|
+
|
|
15
|
+
## Pull requests
|
|
16
|
+
|
|
17
|
+
### Before you start
|
|
18
|
+
|
|
19
|
+
- For non-trivial changes, **open an issue first** to discuss the approach. This avoids wasted effort if the design needs adjustment.
|
|
20
|
+
- Small fixes (typos, one-liner bug fixes) can go straight to a PR.
|
|
21
|
+
|
|
22
|
+
### PR description format
|
|
23
|
+
|
|
24
|
+
A good PR description helps reviewers understand your change quickly:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
## What
|
|
28
|
+
|
|
29
|
+
One-sentence summary of what this PR does.
|
|
30
|
+
|
|
31
|
+
## Why
|
|
32
|
+
|
|
33
|
+
The problem or motivation. Link to the issue if there is one (Fixes #123).
|
|
34
|
+
|
|
35
|
+
## How
|
|
36
|
+
|
|
37
|
+
Brief description of the approach. Call out any non-obvious decisions
|
|
38
|
+
or trade-offs.
|
|
39
|
+
|
|
40
|
+
## Test plan
|
|
41
|
+
|
|
42
|
+
How you verified the change works:
|
|
43
|
+
- [ ] Added/updated unit tests
|
|
44
|
+
- [ ] Ran `pixi run check` (lint + typecheck + tests)
|
|
45
|
+
- [ ] Manual testing with a real .rdc capture (if applicable)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Commit messages
|
|
49
|
+
|
|
50
|
+
We use [Conventional Commits](https://www.conventionalcommits.org/), enforced by commitlint in CI:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
feat(cli): add frobnicate command
|
|
54
|
+
fix(daemon): handle missing texture gracefully
|
|
55
|
+
docs(readme): update install instructions
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Common scopes: `cli`, `daemon`, `vfs`, `ci`, `build`, `docs`.
|
|
59
|
+
|
|
60
|
+
### Workflow
|
|
61
|
+
|
|
62
|
+
1. Fork and clone the repo
|
|
63
|
+
2. Set up the dev environment:
|
|
64
|
+
```bash
|
|
65
|
+
pixi install && pixi run sync
|
|
66
|
+
```
|
|
67
|
+
3. Create a feature branch: `git switch -c feat/my-feature`
|
|
68
|
+
4. Make your changes, ensure `pixi run check` passes
|
|
69
|
+
5. Push and open a PR against `master`
|
|
70
|
+
|
|
71
|
+
PRs are squash-merged after review.
|
|
72
|
+
|
|
73
|
+
### Code style
|
|
74
|
+
|
|
75
|
+
Enforced by CI — just follow the tooling:
|
|
76
|
+
|
|
77
|
+
- **Linter/formatter**: ruff (`ruff check --fix` / `ruff format` to auto-fix)
|
|
78
|
+
- **Type checker**: mypy strict mode
|
|
79
|
+
- **Line length**: 100 chars
|
|
80
|
+
- **Output**: `click.echo()` or `logging`, never `print()`
|
|
81
|
+
- **Paths**: `pathlib.Path`, not `os.path`
|
|
82
|
+
|
|
83
|
+
### CI checks on PRs
|
|
84
|
+
|
|
85
|
+
- Lint (ruff) + type check (mypy)
|
|
86
|
+
- Unit tests — Python 3.10 / 3.12 / 3.14 on Linux + Windows
|
|
87
|
+
- Commitlint — conventional commit format
|
|
88
|
+
- Dependency audit (pip-audit)
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rdc-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: CLI for RenderDoc .rdc captures
|
|
5
5
|
Author: Jim
|
|
6
6
|
License-Expression: MIT
|
|
@@ -40,6 +40,7 @@ Dynamic: license-file
|
|
|
40
40
|
[](https://bananasjim.github.io/rdc-cli/)
|
|
41
41
|
[](https://bananasjim.github.io/rdc-cli/)
|
|
42
42
|
[](https://bananasjim.github.io/rdc-cli/)
|
|
43
|
+
[](https://discord.gg/h3zwUadp4k)
|
|
43
44
|
|
|
44
45
|
**Turn RenderDoc captures into Unix text streams.** rdc-cli does not replace RenderDoc — it makes `.rdc` file contents accessible to `grep`, `awk`, `sort`, `diff`, `jq`, and AI agents.
|
|
45
46
|
|
|
@@ -99,11 +100,12 @@ pixi run setup-renderdoc # build renderdoc (pixi installs toolchain
|
|
|
99
100
|
|
|
100
101
|
### Platform Support Matrix
|
|
101
102
|
|
|
102
|
-
| Platform | Local capture/replay | Split client |
|
|
103
|
-
|
|
104
|
-
| Linux | ✅ | ✅ |
|
|
105
|
-
| macOS | ❌ (not supported yet) | ✅ (recommended) |
|
|
106
|
-
| Windows | ✅ | ✅ |
|
|
103
|
+
| Platform | Local capture/replay | Split client | Remote capture |
|
|
104
|
+
|----------|----------------------|--------------|----------------|
|
|
105
|
+
| Linux | ✅ | ✅ | ✅ |
|
|
106
|
+
| macOS | ❌ (not supported yet) | ✅ (recommended) | — |
|
|
107
|
+
| Windows | ✅ | ✅ | ✅ |
|
|
108
|
+
| Android | — | — | ✅ capture + remote replay |
|
|
107
109
|
|
|
108
110
|
### RenderDoc bootstrap
|
|
109
111
|
|
|
@@ -189,6 +191,28 @@ rdc close
|
|
|
189
191
|
|
|
190
192
|
Split mode is recommended for cross-platform use. All commands work transparently regardless of mode.
|
|
191
193
|
|
|
194
|
+
**Android capture and remote replay**
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
rdc setup-renderdoc --android # download RenderDoc APKs for Android
|
|
198
|
+
rdc android setup # start remote server on connected device
|
|
199
|
+
rdc android capture com.app/.MainActivity -o frame.rdc # capture via GPU debug layers
|
|
200
|
+
|
|
201
|
+
# Remote replay on the device GPU
|
|
202
|
+
rdc open frame.rdc --android # auto-resolves device from saved state
|
|
203
|
+
rdc draws # all commands work transparently
|
|
204
|
+
rdc pick-pixel 540 1170 --json # pixel queries work in remote mode
|
|
205
|
+
rdc close
|
|
206
|
+
|
|
207
|
+
rdc android stop # stop remote server
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Android capture uses GPU debug layers (Android 10+). Remote replay uploads the capture back to the device for replay on the original GPU. Tested on Adreno and Mali (EMUI) devices. For Mali GPUs, ARM Performance Studio is recommended:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
rdc setup-renderdoc --android --arm-studio /path/to/arm-performance-studio
|
|
214
|
+
```
|
|
215
|
+
|
|
192
216
|
## Why rdc-cli?
|
|
193
217
|
|
|
194
218
|
RenderDoc is excellent at capturing GPU frames and replaying them interactively. But its GUI doesn't compose — you can't pipe a draw call list into `sort`, diff two captures in CI, or let an AI agent inspect shader state.
|
|
@@ -213,16 +237,17 @@ Run `rdc --help` for the full list, or `rdc <command> --help` for details. See
|
|
|
213
237
|
| GPU state | `pipeline`, `bindings`, `shader`, `shaders`, `shader-map` |
|
|
214
238
|
| Debug | `debug pixel`, `debug vertex`, `debug thread`, `pixel`, `pick-pixel`, `tex-stats` |
|
|
215
239
|
| Shader edit | `shader-build`, `shader-replace`, `shader-restore`, `shader-restore-all`, `shader-encodings` |
|
|
216
|
-
| Resources | `resources`, `resource`, `passes`, `pass`, `usage` |
|
|
240
|
+
| Resources | `resources`, `resource`, `passes`, `pass`, `usage`, `unused-targets` |
|
|
217
241
|
| Export | `texture`, `rt`, `buffer`, `mesh`, `snapshot` |
|
|
218
242
|
| Search | `search`, `counters` |
|
|
219
243
|
| Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
|
|
220
244
|
| Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
|
|
221
245
|
| VFS | `ls`, `cat`, `tree` |
|
|
222
246
|
| Remote | `remote connect`, `remote list`, `remote capture` |
|
|
247
|
+
| Android | `android setup`, `android stop`, `android capture` |
|
|
223
248
|
| Target control | `attach`, `capture-trigger`, `capture-list`, `capture-copy` |
|
|
224
249
|
| Capture file | `sections`, `section`, `callstacks`, `gpus`, `thumbnail` |
|
|
225
|
-
| Utility | `doctor`, `completion`, `capture`, `count`, `script`, `serve`, `install-skill` |
|
|
250
|
+
| Utility | `doctor`, `completion`, `capture`, `count`, `script`, `serve`, `setup-renderdoc`, `install-skill` |
|
|
226
251
|
|
|
227
252
|
All list commands output TSV. All commands support `--json`. Footer/summary goes to stderr — stdout is always clean data.
|
|
228
253
|
|
|
@@ -269,6 +294,10 @@ pixi run e2e # cross-platform smoke test (26 checks)
|
|
|
269
294
|
pixi run test-e2e # full e2e suite (self-capture + dynamic discovery)
|
|
270
295
|
```
|
|
271
296
|
|
|
297
|
+
## Contributing
|
|
298
|
+
|
|
299
|
+
Bug reports, feature requests, and pull requests are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
300
|
+
|
|
272
301
|
## License
|
|
273
302
|
|
|
274
303
|
[MIT](LICENSE)
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
[](https://bananasjim.github.io/rdc-cli/)
|
|
14
14
|
[](https://bananasjim.github.io/rdc-cli/)
|
|
15
15
|
[](https://bananasjim.github.io/rdc-cli/)
|
|
16
|
+
[](https://discord.gg/h3zwUadp4k)
|
|
16
17
|
|
|
17
18
|
**Turn RenderDoc captures into Unix text streams.** rdc-cli does not replace RenderDoc — it makes `.rdc` file contents accessible to `grep`, `awk`, `sort`, `diff`, `jq`, and AI agents.
|
|
18
19
|
|
|
@@ -72,11 +73,12 @@ pixi run setup-renderdoc # build renderdoc (pixi installs toolchain
|
|
|
72
73
|
|
|
73
74
|
### Platform Support Matrix
|
|
74
75
|
|
|
75
|
-
| Platform | Local capture/replay | Split client |
|
|
76
|
-
|
|
77
|
-
| Linux | ✅ | ✅ |
|
|
78
|
-
| macOS | ❌ (not supported yet) | ✅ (recommended) |
|
|
79
|
-
| Windows | ✅ | ✅ |
|
|
76
|
+
| Platform | Local capture/replay | Split client | Remote capture |
|
|
77
|
+
|----------|----------------------|--------------|----------------|
|
|
78
|
+
| Linux | ✅ | ✅ | ✅ |
|
|
79
|
+
| macOS | ❌ (not supported yet) | ✅ (recommended) | — |
|
|
80
|
+
| Windows | ✅ | ✅ | ✅ |
|
|
81
|
+
| Android | — | — | ✅ capture + remote replay |
|
|
80
82
|
|
|
81
83
|
### RenderDoc bootstrap
|
|
82
84
|
|
|
@@ -162,6 +164,28 @@ rdc close
|
|
|
162
164
|
|
|
163
165
|
Split mode is recommended for cross-platform use. All commands work transparently regardless of mode.
|
|
164
166
|
|
|
167
|
+
**Android capture and remote replay**
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
rdc setup-renderdoc --android # download RenderDoc APKs for Android
|
|
171
|
+
rdc android setup # start remote server on connected device
|
|
172
|
+
rdc android capture com.app/.MainActivity -o frame.rdc # capture via GPU debug layers
|
|
173
|
+
|
|
174
|
+
# Remote replay on the device GPU
|
|
175
|
+
rdc open frame.rdc --android # auto-resolves device from saved state
|
|
176
|
+
rdc draws # all commands work transparently
|
|
177
|
+
rdc pick-pixel 540 1170 --json # pixel queries work in remote mode
|
|
178
|
+
rdc close
|
|
179
|
+
|
|
180
|
+
rdc android stop # stop remote server
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Android capture uses GPU debug layers (Android 10+). Remote replay uploads the capture back to the device for replay on the original GPU. Tested on Adreno and Mali (EMUI) devices. For Mali GPUs, ARM Performance Studio is recommended:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
rdc setup-renderdoc --android --arm-studio /path/to/arm-performance-studio
|
|
187
|
+
```
|
|
188
|
+
|
|
165
189
|
## Why rdc-cli?
|
|
166
190
|
|
|
167
191
|
RenderDoc is excellent at capturing GPU frames and replaying them interactively. But its GUI doesn't compose — you can't pipe a draw call list into `sort`, diff two captures in CI, or let an AI agent inspect shader state.
|
|
@@ -186,16 +210,17 @@ Run `rdc --help` for the full list, or `rdc <command> --help` for details. See
|
|
|
186
210
|
| GPU state | `pipeline`, `bindings`, `shader`, `shaders`, `shader-map` |
|
|
187
211
|
| Debug | `debug pixel`, `debug vertex`, `debug thread`, `pixel`, `pick-pixel`, `tex-stats` |
|
|
188
212
|
| Shader edit | `shader-build`, `shader-replace`, `shader-restore`, `shader-restore-all`, `shader-encodings` |
|
|
189
|
-
| Resources | `resources`, `resource`, `passes`, `pass`, `usage` |
|
|
213
|
+
| Resources | `resources`, `resource`, `passes`, `pass`, `usage`, `unused-targets` |
|
|
190
214
|
| Export | `texture`, `rt`, `buffer`, `mesh`, `snapshot` |
|
|
191
215
|
| Search | `search`, `counters` |
|
|
192
216
|
| Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
|
|
193
217
|
| Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
|
|
194
218
|
| VFS | `ls`, `cat`, `tree` |
|
|
195
219
|
| Remote | `remote connect`, `remote list`, `remote capture` |
|
|
220
|
+
| Android | `android setup`, `android stop`, `android capture` |
|
|
196
221
|
| Target control | `attach`, `capture-trigger`, `capture-list`, `capture-copy` |
|
|
197
222
|
| Capture file | `sections`, `section`, `callstacks`, `gpus`, `thumbnail` |
|
|
198
|
-
| Utility | `doctor`, `completion`, `capture`, `count`, `script`, `serve`, `install-skill` |
|
|
223
|
+
| Utility | `doctor`, `completion`, `capture`, `count`, `script`, `serve`, `setup-renderdoc`, `install-skill` |
|
|
199
224
|
|
|
200
225
|
All list commands output TSV. All commands support `--json`. Footer/summary goes to stderr — stdout is always clean data.
|
|
201
226
|
|
|
@@ -242,6 +267,10 @@ pixi run e2e # cross-platform smoke test (26 checks)
|
|
|
242
267
|
pixi run test-e2e # full e2e suite (self-capture + dynamic discovery)
|
|
243
268
|
```
|
|
244
269
|
|
|
270
|
+
## Contributing
|
|
271
|
+
|
|
272
|
+
Bug reports, feature requests, and pull requests are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
273
|
+
|
|
245
274
|
## License
|
|
246
275
|
|
|
247
276
|
[MIT](LICENSE)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"name": "open",
|
|
10
10
|
"id": "open",
|
|
11
11
|
"help": "Create local default session and start daemon skeleton.",
|
|
12
|
-
"usage": "rdc open [CAPTURE] [--preload] [--proxy HOST[:PORT]] [--remote HOST[:PORT]] [--listen [ADDR]:PORT] [--connect HOST:PORT] [--token TEXT]"
|
|
12
|
+
"usage": "rdc open [CAPTURE] [--preload] [--proxy HOST[:PORT]|adb://SERIAL] [--android] [--serial TEXT] [--remote HOST[:PORT]] [--listen [ADDR]:PORT] [--connect HOST:PORT] [--token TEXT]"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"name": "close",
|
|
@@ -168,13 +168,19 @@
|
|
|
168
168
|
"name": "passes",
|
|
169
169
|
"id": "passes",
|
|
170
170
|
"help": "List render passes.",
|
|
171
|
-
"usage": "rdc passes [--json] [--deps] [--dot] [--graph] [--no-header] [--jsonl] [-q]"
|
|
171
|
+
"usage": "rdc passes [--json] [--deps] [--dot] [--graph] [--table] [--switches] [--no-header] [--jsonl] [-q]"
|
|
172
172
|
},
|
|
173
173
|
{
|
|
174
174
|
"name": "pass",
|
|
175
175
|
"id": "pass",
|
|
176
176
|
"help": "Show detail for a single render pass by 0-based index or name.",
|
|
177
177
|
"usage": "rdc pass <IDENTIFIER> [--json]"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"name": "unused-targets",
|
|
181
|
+
"id": "unused-targets",
|
|
182
|
+
"help": "Detect render targets produced but never consumed by visible output.",
|
|
183
|
+
"usage": "rdc unused-targets [--json] [-q] [--no-header]"
|
|
178
184
|
}
|
|
179
185
|
]
|
|
180
186
|
},
|
|
@@ -466,6 +472,24 @@
|
|
|
466
472
|
"id": "remote-capture",
|
|
467
473
|
"help": "Capture on a remote host and transfer to local.",
|
|
468
474
|
"usage": "rdc remote capture <APP> -o <PATH> [--url TEXT] [--args TEXT] [--workdir TEXT] [--frame INTEGER] [--timeout FLOAT] [--api-validation] [--callstacks] [--hook-children] [--ref-all-resources] [--soft-memory-limit INTEGER] [--keep-remote] [--json]"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"name": "android setup",
|
|
478
|
+
"id": "android-setup",
|
|
479
|
+
"help": "Start RenderDoc remote server on an Android device.",
|
|
480
|
+
"usage": "rdc android setup [--serial TEXT] [--json]"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"name": "android stop",
|
|
484
|
+
"id": "android-stop",
|
|
485
|
+
"help": "Stop RenderDoc remote server on an Android device.",
|
|
486
|
+
"usage": "rdc android stop [--serial TEXT] [--json]"
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"name": "android capture",
|
|
490
|
+
"id": "android-capture",
|
|
491
|
+
"help": "Capture a frame from an Android app using GPU debug layers.",
|
|
492
|
+
"usage": "rdc android capture <ACTIVITY> [--serial TEXT] [-o PATH] [--timeout FLOAT] [--port INTEGER] [--json]"
|
|
469
493
|
}
|
|
470
494
|
]
|
|
471
495
|
},
|
|
@@ -502,7 +526,7 @@
|
|
|
502
526
|
"name": "setup-renderdoc",
|
|
503
527
|
"id": "setup-renderdoc",
|
|
504
528
|
"help": "Build and install the renderdoc Python module from source.",
|
|
505
|
-
"usage": "rdc setup-renderdoc [INSTALL-DIR] [--build-dir TEXT] [--version TEXT] [--jobs INTEGER]"
|
|
529
|
+
"usage": "rdc setup-renderdoc [INSTALL-DIR] [--build-dir TEXT] [--version TEXT] [--jobs INTEGER] [--android] [--arm] [--arm-studio DIRECTORY]"
|
|
506
530
|
}
|
|
507
531
|
]
|
|
508
532
|
}
|
|
@@ -260,17 +260,51 @@ rdc --session after close</code></pre>
|
|
|
260
260
|
|
|
261
261
|
<h2 id="render-pass">Render Pass Analysis</h2>
|
|
262
262
|
|
|
263
|
-
<pre><code>{"# List all render passes"}
|
|
263
|
+
<pre><code>{"# List all render passes (NAME, DRAWS, DISPATCHES, TRIANGLES, BEGIN_EID, END_EID)"}
|
|
264
264
|
rdc passes
|
|
265
265
|
|
|
266
|
-
{"# Inspect a
|
|
266
|
+
{"# Inspect attachments, load/store ops, and dimensions for a pass"}
|
|
267
267
|
rdc pass GBuffer
|
|
268
268
|
|
|
269
269
|
{"# List draws in a pass"}
|
|
270
270
|
rdc draws --pass GBuffer
|
|
271
271
|
|
|
272
272
|
{"# Find passes with many draws"}
|
|
273
|
-
rdc passes --json | jq '.[] | select(.draw_count > 50)'
|
|
273
|
+
rdc passes --json | jq '.[] | select(.draw_count > 50)'
|
|
274
|
+
|
|
275
|
+
{"# Largest triangle passes"}
|
|
276
|
+
rdc passes --json | jq 'sort_by(.triangles) | reverse | .[0:5] | .[] | {name, triangles}'
|
|
277
|
+
|
|
278
|
+
{"# Passes that clear then discard (load=Clear, store=Discard — wasted work)"}
|
|
279
|
+
rdc passes --json | jq '.[] | select(.load_ops[]? == "Clear" and .store_ops[]? == "Discard")'</code></pre>
|
|
280
|
+
|
|
281
|
+
<h2 id="pass-deps">Pass Dependency Analysis</h2>
|
|
282
|
+
|
|
283
|
+
<pre><code>{"# Per-pass reads/writes/load/store table"}
|
|
284
|
+
rdc passes --deps --table
|
|
285
|
+
|
|
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
|
+
{"# Full dependency graph as DOT (render with Graphviz)"}
|
|
293
|
+
rdc passes --deps --dot | dot -Tsvg -o passes.svg</code></pre>
|
|
294
|
+
|
|
295
|
+
<h2 id="unused-targets">Dead Render Target Detection</h2>
|
|
296
|
+
|
|
297
|
+
<pre><code>{"# Find render targets that are written but never read"}
|
|
298
|
+
rdc unused-targets
|
|
299
|
+
|
|
300
|
+
{"# Names only — quick scan"}
|
|
301
|
+
rdc unused-targets -q
|
|
302
|
+
|
|
303
|
+
{"# JSON — get name + writer + wave for each dead target"}
|
|
304
|
+
rdc unused-targets --json | jq '.unused[] | {name, written_by, wave}'
|
|
305
|
+
|
|
306
|
+
{"# Count dead targets (useful as a CI assert)"}
|
|
307
|
+
rdc unused-targets -q | wc -l</code></pre>
|
|
274
308
|
|
|
275
309
|
<h2 id="pixel-ladder">Pixel Investigation Ladder</h2>
|
|
276
310
|
|
|
@@ -258,6 +258,54 @@ rdc pipeline # pipeline state via remote controller</code></pre>
|
|
|
258
258
|
|
|
259
259
|
<hr />
|
|
260
260
|
|
|
261
|
+
<h2>Android Remote Replay</h2>
|
|
262
|
+
|
|
263
|
+
<p>
|
|
264
|
+
Android captures can only be replayed on the original device GPU (desktop GPUs
|
|
265
|
+
are incompatible with mobile GLES/Vulkan captures). The <code>--android</code>
|
|
266
|
+
flag on <code>rdc open</code> automates this: it resolves the device's
|
|
267
|
+
adb-forwarded port from saved state and opens a proxy replay session.
|
|
268
|
+
</p>
|
|
269
|
+
|
|
270
|
+
<h3>Workflow</h3>
|
|
271
|
+
<pre><code># 1. Setup: start RenderDoc remote server on the device
|
|
272
|
+
rdc android setup
|
|
273
|
+
|
|
274
|
+
# 2. Capture a frame
|
|
275
|
+
rdc android capture com.example.app/.MainActivity -o frame.rdc
|
|
276
|
+
|
|
277
|
+
# 3. Remote replay on the device GPU
|
|
278
|
+
rdc open frame.rdc --android # auto-resolves device
|
|
279
|
+
rdc open frame.rdc --android --serial XYZ # explicit device selection
|
|
280
|
+
|
|
281
|
+
# 4. All commands work transparently
|
|
282
|
+
rdc info # shows "API: OpenGL, machine_ident: Android ARM 64-bit"
|
|
283
|
+
rdc draws # draw call list
|
|
284
|
+
rdc pick-pixel 540 1170 --json # pixel queries
|
|
285
|
+
rdc snapshot 11 -o ./snap/ # pipeline + shader export
|
|
286
|
+
rdc close
|
|
287
|
+
|
|
288
|
+
# 5. Cleanup
|
|
289
|
+
rdc android stop</code></pre>
|
|
290
|
+
|
|
291
|
+
<h3>How it works</h3>
|
|
292
|
+
<p>
|
|
293
|
+
<code>--android</code> reads the <code>RemoteServerState</code> saved by
|
|
294
|
+
<code>rdc android setup</code>, finds the adb-forwarded TCP port via
|
|
295
|
+
<code>adb forward --list</code>, and passes <code>localhost:PORT</code>
|
|
296
|
+
as the proxy URL. The daemon then uploads the capture to the device via
|
|
297
|
+
<code>CopyCaptureToRemote</code> and opens it for replay on the device GPU.
|
|
298
|
+
</p>
|
|
299
|
+
|
|
300
|
+
<h3>Prerequisites</h3>
|
|
301
|
+
<ul>
|
|
302
|
+
<li><code>rdc android setup</code> must be run first (starts the remote server)</li>
|
|
303
|
+
<li>Device must be connected via USB with <code>adb</code> access</li>
|
|
304
|
+
<li>Android 10+ for GPU debug layer capture</li>
|
|
305
|
+
</ul>
|
|
306
|
+
|
|
307
|
+
<hr />
|
|
308
|
+
|
|
261
309
|
<h2>Remote Capture Commands</h2>
|
|
262
310
|
|
|
263
311
|
<p>
|
|
@@ -404,7 +452,10 @@ rdc pipeline</code></pre>
|
|
|
404
452
|
rdc open capture.rdc
|
|
405
453
|
|
|
406
454
|
# Proxy mode
|
|
407
|
-
rdc open capture.rdc --proxy HOST[:PORT]
|
|
455
|
+
rdc open capture.rdc --proxy HOST[:PORT]|adb://SERIAL
|
|
456
|
+
|
|
457
|
+
# Android remote replay
|
|
458
|
+
rdc open capture.rdc --android [--serial SERIAL]
|
|
408
459
|
|
|
409
460
|
# Split server
|
|
410
461
|
rdc open capture.rdc --listen [ADDR]:PORT # :0 for auto-port
|
|
@@ -420,7 +471,8 @@ rdc remote capture APP [-o OUTPUT]</code></pre>
|
|
|
420
471
|
|
|
421
472
|
<h2>Notes</h2>
|
|
422
473
|
<ul>
|
|
423
|
-
<li><code>--connect</code> is mutually exclusive with <code>CAPTURE</code>, <code>--proxy</code>, and <code>--listen</code>.</li>
|
|
474
|
+
<li><code>--connect</code> is mutually exclusive with <code>CAPTURE</code>, <code>--proxy</code>, <code>--android</code>, and <code>--listen</code>.</li>
|
|
475
|
+
<li><code>--android</code> is mutually exclusive with <code>--proxy</code>, <code>--connect</code>, and <code>--listen</code>.</li>
|
|
424
476
|
<li><code>--listen</code> can be combined with <code>--proxy</code> for Split+Proxy setups.</li>
|
|
425
477
|
<li>For <code>rdc open</code>, <code>--remote</code> is a deprecated alias for <code>--proxy</code> (hidden, shows deprecation warning).</li>
|
|
426
478
|
<li>The daemon has a 30-minute idle timeout by default. Any command resets the timer.</li>
|
|
@@ -95,4 +95,31 @@ rdc usage 5
|
|
|
95
95
|
|
|
96
96
|
# Show all resource usage
|
|
97
97
|
rdc usage --all</code></pre>
|
|
98
|
+
|
|
99
|
+
<h2>Pass Analysis</h2>
|
|
100
|
+
<p>
|
|
101
|
+
<code>rdc passes</code> shows 6 columns: NAME, DRAWS, DISPATCHES, TRIANGLES, BEGIN_EID, END_EID.
|
|
102
|
+
GL/GLES/D3D11 captures get synthetic pass inference automatically.
|
|
103
|
+
</p>
|
|
104
|
+
<pre><code># Tabular pass summary
|
|
105
|
+
rdc passes
|
|
106
|
+
|
|
107
|
+
# Per-pass dependency graph (reads/writes/load/store)
|
|
108
|
+
rdc passes --deps --table
|
|
109
|
+
|
|
110
|
+
# Add RT_SWITCHES column for TBR/mobile bandwidth analysis
|
|
111
|
+
rdc passes --switches
|
|
112
|
+
|
|
113
|
+
# Inspect attachments, load/store ops, and dimensions for a pass
|
|
114
|
+
rdc pass GBuffer
|
|
115
|
+
|
|
116
|
+
# JSON output — includes load_ops/store_ops per pass
|
|
117
|
+
rdc passes --json | jq '.[] | {name: .name, load: .load_ops, store: .store_ops}'</code></pre>
|
|
118
|
+
|
|
119
|
+
<h2>Dead Render Target Detection</h2>
|
|
120
|
+
<pre><code># List render targets written but never sampled/read
|
|
121
|
+
rdc unused-targets
|
|
122
|
+
|
|
123
|
+
# JSON output for scripted analysis
|
|
124
|
+
rdc unused-targets --json | jq '.[].name'</code></pre>
|
|
98
125
|
</Docs>
|
|
@@ -48,8 +48,12 @@ libvulkan-loader = ">=1.3"
|
|
|
48
48
|
libvulkan-headers = ">=1.3"
|
|
49
49
|
libvulkan-loader = ">=1.3"
|
|
50
50
|
|
|
51
|
+
[feature.android.activation.env]
|
|
52
|
+
PATH = ".local/android-platform-tools/platform-tools:${PATH}"
|
|
53
|
+
|
|
51
54
|
[environments]
|
|
52
55
|
vulkan = { features = ["vulkan"], solve-group = "default" }
|
|
56
|
+
android = { features = ["android"], solve-group = "default" }
|
|
53
57
|
|
|
54
58
|
[activation.env]
|
|
55
59
|
RENDERDOC_PYTHON_PATH = ".local/renderdoc"
|
|
@@ -76,6 +80,7 @@ e2e = "python scripts/e2e_test.py"
|
|
|
76
80
|
test-e2e = "uv run pytest tests/e2e -v -m gpu --no-header"
|
|
77
81
|
test-e2e-full = "uv run pytest tests/e2e -v -m 'gpu or vulkan_samples' --no-header"
|
|
78
82
|
setup-vulkan-samples = "python scripts/setup_vulkan_samples.py"
|
|
83
|
+
setup-android = "python scripts/setup_android_tools.py"
|
|
79
84
|
docs-install = "npm --prefix docs-astro ci"
|
|
80
85
|
docs-build = "npm --prefix docs-astro run build"
|
|
81
86
|
docs-test = "npm --prefix docs-astro test"
|