rdc-cli 0.6.0__tar.gz → 0.6.2__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.6.0 → rdc_cli-0.6.2}/.gitignore +2 -0
- {rdc_cli-0.6.0/src/rdc_cli.egg-info → rdc_cli-0.6.2}/PKG-INFO +1 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/data/commands.json +1 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/_skills/references/commands-quick-ref.md +4 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/cbuffer.py +1 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/descriptors.py +2 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/mesh.py +27 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/resources.py +2 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/_helpers.py +54 -7
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/buffer.py +377 -60
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/debug.py +9 -9
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/descriptor.py +3 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/query.py +3 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/texture.py +5 -2
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/vfs/router.py +24 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/vfs/tree_cache.py +22 -2
- {rdc_cli-0.6.0 → rdc_cli-0.6.2/src/rdc_cli.egg-info}/PKG-INFO +1 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc_cli.egg-info/scm_file_list.json +288 -288
- rdc_cli-0.6.2/src/rdc_cli.egg-info/scm_version.json +8 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/mocks/mock_renderdoc.py +10 -1
- rdc_cli-0.6.2/tests/unit/test_buffer_decode.py +1837 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_cbuffer_commands.py +17 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_daemon_shader_api_fix.py +57 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_debug_handlers.py +52 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_descriptors_commands.py +5 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_descriptors_daemon.py +12 -3
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_fix2_vfs_intermediate_dirs.py +21 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_formatters.py +3 -3
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_mesh_commands.py +59 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_resources_commands.py +5 -1
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_resources_filter.py +18 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_tex_stats_handler.py +46 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_vfs_router.py +14 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/uv.lock +91 -95
- rdc_cli-0.6.0/src/rdc_cli.egg-info/scm_version.json +0 -8
- rdc_cli-0.6.0/tests/unit/test_buffer_decode.py +0 -917
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.commitlintrc.yml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.githooks/pre-commit +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.githooks/pre-push +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/CODEOWNERS +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/workflows/aur.yml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/workflows/ci.yml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/workflows/commitlint.yml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.github/workflows/docs.yml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.python-version +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/.release-please-manifest.json +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/CONTRIBUTING.md +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/LICENSE +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/Makefile +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/README.md +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/SECURITY.md +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/aur/PKGBUILD +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/aur/stable/PKGBUILD +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docker/Dockerfile +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/astro.config.mjs +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/package-lock.json +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/package.json +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/public/.nojekyll +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/public/favicon.svg +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Commands.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Demo.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Features.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Footer.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Hero.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Install.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Navbar.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Philosophy.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/Terminal.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/data/replay.json +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/data/stats.json +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/layouts/Base.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/layouts/Docs.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/commands.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/design.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/examples.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/index.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/install.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/remote.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/usage.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/docs/vfs.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/pages/index.astro +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/src/styles/global.css +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/tailwind.config.mjs +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/tapes/pipeline.tape +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/tapes/quickstart.tape +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/tests/validate.mjs +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/docs-astro/tsconfig.json +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/mypy.ini +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/pixi.lock +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/pixi.toml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/pyproject.toml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/release-please-config.json +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/ruff.toml +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/build-renderdoc.sh +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/build_renderdoc.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/capture_fixture.sh +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/dev_install.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/e2e_test.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/ensure-renderdoc.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/ensure-renderdoc.sh +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/ensure-skill-link.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/gen-commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/gen-replay.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/gen-skill-ref.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/gen-stats.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/gen_and_check.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/setup-renderdoc.sh +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/setup-vulkan-samples.sh +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/setup_android_tools.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/setup_vulkan_samples.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/verify-package.sh +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/scripts/verify_package.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/setup.cfg +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/__init__.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/_build_renderdoc.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/_platform.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/_progress.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/_skills/SKILL.md +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/_skills/__init__.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/_transport.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/adapter.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/capture_core.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/cli.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/_helpers.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/android.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/assert_ci.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/assert_image.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/capture.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/capture_control.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/capturefile.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/completion.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/counters.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/debug.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/diff.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/doctor.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/events.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/export.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/info.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/install_skill.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/pick_pixel.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/pipeline.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/pixel.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/remote.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/script.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/search.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/serve.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/session.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/setup_renderdoc.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/shader_edit.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/snapshot.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/tex_stats.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/unix_helpers.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/unused_targets.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/usage.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/commands/vfs.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/daemon_client.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/daemon_server.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/diff/__init__.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/diff/alignment.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/diff/draws.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/diff/framebuffer.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/diff/pipeline.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/diff/resources.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/diff/stats.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/diff/summary.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/discover.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/formatters/json_fmt.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/formatters/kv.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/formatters/options.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/formatters/tsv.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/__init__.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/_types.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/capture.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/capturefile.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/core.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/pipe_state.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/pixel.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/script.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/shader.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/shader_edit.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/unused.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/handlers/vfs.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/image_compare.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/protocol.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/remote_core.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/remote_state.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/services/__init__.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/services/diff_service.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/services/query_service.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/services/session_service.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/session_state.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/target_state.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/vfs/__init__.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc/vfs/formatter.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc_cli.egg-info/SOURCES.txt +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc_cli.egg-info/entry_points.txt +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc_cli.egg-info/requires.txt +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/src/rdc_cli.egg-info/top_level.txt +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/conftest.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/__init__.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/blackbox_test_catalog.md +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/conftest.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/e2e_helpers.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_advanced.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_assert.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_capture.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_capturefile.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_debug.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_diff.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_export.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_formats.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_presession.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_query.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_session.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_shader_edit.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/e2e/test_vfs.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/fixtures/gles-multipass-debug.apk +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/fixtures/gles-triangle-debug.apk +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/fixtures/gles_android_mali.rdc +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/fixtures/gles_multipass_mali.rdc +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/fixtures/hello_triangle.rdc +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/fixtures/vkcube.rdc +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/fixtures/vkcube_validation.rdc +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/integration/test_build_renderdoc_integration.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/integration/test_daemon_handlers_real.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/integration/test_mock_api_sync.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/integration/test_real_replay.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/integration/test_vulkan_samples.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/conftest.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_adapter.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_android_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_assert_ci_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_assert_image_command.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_binary_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_build_renderdoc.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_capture.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_capture_control.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_capture_core.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_capture_handlers.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_capturefile_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_capturefile_handlers.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_ci_files.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_cli.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_cli_session_flag.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_completion.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_count_shadermap.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_counters_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_counters_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_daemon_crash_regression.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_daemon_output_quality.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_daemon_pipeline_extended.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_daemon_server_unit.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_daemon_shader_extended.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_daemon_transport.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_debug_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_dev_install.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_alignment.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_command.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_draws.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_framebuffer.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_pipeline.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_resources.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_service.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_stats.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_diff_summary.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_discover.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_doctor.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_doctor_hints.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_draws_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_draws_events_cli.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_draws_events_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_eid_completion.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_events_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_export_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_export_overlay.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_fix1_draws_pass_name.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_formatters_kv.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_gen_skill_ref.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_handlers_remote.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_image_compare.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_info_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_install_skill.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_json_errors.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_keep_remote.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_mesh_handler.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_mock_capture_types.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_mock_renderdoc.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_open_remote.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_output_options.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_overlay_handler.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pass_deps.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pick_pixel_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pick_pixel_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pipeline_cli_phase27.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pipeline_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pipeline_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pipeline_section_routing.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pipeline_shader.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pipeline_state.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pixel_history_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pixel_history_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_pixi_files.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_platform.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_progress.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_protocol.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_query_service.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_quickfix_batch.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_remote_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_remote_core.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_remote_replay.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_remote_setup.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_remote_state.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_remote_status_disconnect.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_require_pipe.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_resource_semantic_completion.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_script_command.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_script_handler.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_search.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_semantic_completion.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_serve.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_session_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_session_completion.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_session_service.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_session_state.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_setup_renderdoc.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_setup_vulkan_samples.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_shader_edit_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_shader_edit_handlers.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_shader_preload.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_skill_structure.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_snapshot_command.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_split_binary.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_split_core.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_stats_event_count.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_target_state.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_tex_stats_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_tooling_files.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_unix_helpers_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_unused_targets.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_usage_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_usage_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_vfs_binary.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_vfs_commands.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_vfs_completion.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_vfs_daemon.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_vfs_formatter.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_vfs_tree_cache.py +0 -0
- {rdc_cli-0.6.0 → rdc_cli-0.6.2}/tests/unit/test_windows_compat.py +0 -0
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
"name": "mesh",
|
|
224
224
|
"id": "mesh",
|
|
225
225
|
"help": "Export post-transform mesh as OBJ.",
|
|
226
|
-
"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]"
|
|
227
227
|
},
|
|
228
228
|
{
|
|
229
229
|
"name": "snapshot",
|
|
@@ -642,6 +642,10 @@ Export post-transform mesh as OBJ.
|
|
|
642
642
|
| `-o, --output` | Write to file | path | |
|
|
643
643
|
| `--json` | JSON output | flag | |
|
|
644
644
|
| `--no-header` | Suppress OBJ header comment | flag | |
|
|
645
|
+
| `--position-attribute` | VS-IN position input name/semantic | text | |
|
|
646
|
+
| `--position-index` | VS-IN position input list index | integer | |
|
|
647
|
+
| `--position-slot` | VS-IN position vertex buffer slot | integer | |
|
|
648
|
+
| `--position-offset` | VS-IN position byte offset | integer | |
|
|
645
649
|
|
|
646
650
|
## `rdc open`
|
|
647
651
|
|
|
@@ -50,7 +50,7 @@ def cbuffer_cmd(
|
|
|
50
50
|
raise click.UsageError("-o/--output is required with --raw")
|
|
51
51
|
if eid is None:
|
|
52
52
|
raise click.UsageError("EID is required with --raw")
|
|
53
|
-
_export_vfs_path(f"/draws/{eid}/cbuffer/{cb_set}/{binding}/data", output, raw)
|
|
53
|
+
_export_vfs_path(f"/draws/{eid}/cbuffer/{stage}/{cb_set}/{binding}/data", output, raw)
|
|
54
54
|
return
|
|
55
55
|
|
|
56
56
|
del use_json
|
|
@@ -68,6 +68,7 @@ def descriptors_cmd( # noqa: PLR0913
|
|
|
68
68
|
r.get("format", "-"),
|
|
69
69
|
r.get("width", "-"),
|
|
70
70
|
r.get("height", "-"),
|
|
71
|
+
r.get("depth", "-"),
|
|
71
72
|
]
|
|
72
73
|
for r in rows
|
|
73
74
|
]
|
|
@@ -85,6 +86,7 @@ def descriptors_cmd( # noqa: PLR0913
|
|
|
85
86
|
"FORMAT",
|
|
86
87
|
"WIDTH",
|
|
87
88
|
"HEIGHT",
|
|
89
|
+
"DEPTH",
|
|
88
90
|
],
|
|
89
91
|
no_header=no_header,
|
|
90
92
|
)
|
|
@@ -22,17 +22,33 @@ from rdc.formatters.json_fmt import write_json
|
|
|
22
22
|
@click.option("-o", "--output", type=click.Path(), default=None, help="Write to file")
|
|
23
23
|
@click.option("--json", "use_json", is_flag=True, help="JSON output")
|
|
24
24
|
@click.option("--no-header", is_flag=True, help="Suppress OBJ header comment")
|
|
25
|
+
@click.option("--position-attribute", default=None, help="VS-IN position input name/semantic")
|
|
26
|
+
@click.option("--position-index", type=int, default=None, help="VS-IN position input list index")
|
|
27
|
+
@click.option("--position-slot", type=int, default=None, help="VS-IN position vertex buffer slot")
|
|
28
|
+
@click.option("--position-offset", type=int, default=None, help="VS-IN position byte offset")
|
|
25
29
|
def mesh_cmd(
|
|
26
30
|
eid: int | None,
|
|
27
31
|
stage: str,
|
|
28
32
|
output: str | None,
|
|
29
33
|
use_json: bool,
|
|
30
34
|
no_header: bool,
|
|
35
|
+
position_attribute: str | None,
|
|
36
|
+
position_index: int | None,
|
|
37
|
+
position_slot: int | None,
|
|
38
|
+
position_offset: int | None,
|
|
31
39
|
) -> None:
|
|
32
40
|
"""Export post-transform mesh as OBJ."""
|
|
33
41
|
params: dict[str, Any] = {"stage": stage}
|
|
34
42
|
if eid is not None:
|
|
35
43
|
params["eid"] = eid
|
|
44
|
+
if position_attribute is not None:
|
|
45
|
+
params["position_attribute"] = position_attribute
|
|
46
|
+
if position_index is not None:
|
|
47
|
+
params["position_index"] = position_index
|
|
48
|
+
if position_slot is not None:
|
|
49
|
+
params["position_slot"] = position_slot
|
|
50
|
+
if position_offset is not None:
|
|
51
|
+
params["position_offset"] = position_offset
|
|
36
52
|
|
|
37
53
|
result = call("mesh_data", params)
|
|
38
54
|
|
|
@@ -47,6 +63,8 @@ def mesh_cmd(
|
|
|
47
63
|
positions = _extract_positions(result["vertices"])
|
|
48
64
|
faces = _generate_faces(result["vertex_count"], result["indices"], result["topology"])
|
|
49
65
|
_warn_if_no_faces(result["topology"], len(positions), faces)
|
|
66
|
+
if result.get("position_warning"):
|
|
67
|
+
click.echo(f"mesh: warning: {result['position_warning']}", err=True)
|
|
50
68
|
obj_text = _format_obj(
|
|
51
69
|
positions,
|
|
52
70
|
faces,
|
|
@@ -54,6 +72,7 @@ def mesh_cmd(
|
|
|
54
72
|
stage=result["stage"],
|
|
55
73
|
topology=result["topology"],
|
|
56
74
|
no_header=no_header,
|
|
75
|
+
position_metadata=result,
|
|
57
76
|
)
|
|
58
77
|
|
|
59
78
|
if output:
|
|
@@ -116,15 +135,22 @@ def _format_obj(
|
|
|
116
135
|
stage: str,
|
|
117
136
|
topology: str,
|
|
118
137
|
no_header: bool = False,
|
|
138
|
+
position_metadata: dict[str, Any] | None = None,
|
|
119
139
|
) -> str:
|
|
120
140
|
"""Format vertex positions and faces as OBJ text."""
|
|
121
141
|
lines: list[str] = []
|
|
122
142
|
if not no_header:
|
|
123
|
-
|
|
143
|
+
header = (
|
|
124
144
|
f"# rdc mesh export: eid={eid} stage={stage} "
|
|
125
145
|
f"vertices={len(positions)} faces={len(faces)} "
|
|
126
146
|
f"topology={topology}"
|
|
127
147
|
)
|
|
148
|
+
if position_metadata and position_metadata.get("position_attribute"):
|
|
149
|
+
header += (
|
|
150
|
+
f" position={position_metadata['position_attribute']}"
|
|
151
|
+
f" position_source={position_metadata.get('position_source', 'unknown')}"
|
|
152
|
+
)
|
|
153
|
+
lines.append(header)
|
|
128
154
|
for x, y, z in positions:
|
|
129
155
|
lines.append(f"v {x:.6f} {y:.6f} {z:.6f}")
|
|
130
156
|
for face in faces:
|
|
@@ -139,12 +139,13 @@ def resources_cmd( # noqa: PLR0913
|
|
|
139
139
|
r.get("name", "-"),
|
|
140
140
|
r.get("width", "-"),
|
|
141
141
|
r.get("height", "-"),
|
|
142
|
+
r.get("depth", "-"),
|
|
142
143
|
r.get("format", "-"),
|
|
143
144
|
r.get("size", "-"),
|
|
144
145
|
]
|
|
145
146
|
for r in rows
|
|
146
147
|
]
|
|
147
|
-
header = ["ID", "TYPE", "NAME", "WIDTH", "HEIGHT", "FORMAT", "SIZE"]
|
|
148
|
+
header = ["ID", "TYPE", "NAME", "WIDTH", "HEIGHT", "DEPTH", "FORMAT", "SIZE"]
|
|
148
149
|
write_tsv(tsv_rows, header=header, no_header=no_header)
|
|
149
150
|
|
|
150
151
|
render_list(
|
|
@@ -508,6 +508,58 @@ def get_default_disasm_target(controller: Any) -> str:
|
|
|
508
508
|
return str(targets[0]) if targets else "SPIR-V"
|
|
509
509
|
|
|
510
510
|
|
|
511
|
+
def _shader_value_lane_name(var_type: Any) -> str:
|
|
512
|
+
"""Return the ShaderValue lane name for a reflected variable type."""
|
|
513
|
+
if isinstance(var_type, int):
|
|
514
|
+
return {
|
|
515
|
+
0: "f32v",
|
|
516
|
+
1: "f64v",
|
|
517
|
+
2: "f16v",
|
|
518
|
+
3: "s32v",
|
|
519
|
+
4: "u32v",
|
|
520
|
+
5: "s16v",
|
|
521
|
+
6: "u16v",
|
|
522
|
+
7: "s64v",
|
|
523
|
+
8: "u64v",
|
|
524
|
+
9: "s8v",
|
|
525
|
+
10: "u8v",
|
|
526
|
+
11: "u32v",
|
|
527
|
+
}.get(var_type, "f32v")
|
|
528
|
+
|
|
529
|
+
type_name = getattr(var_type, "name", var_type)
|
|
530
|
+
type_str = str(type_name).lower()
|
|
531
|
+
if "double" in type_str or type_str in {"f64", "float64"}:
|
|
532
|
+
return "f64v"
|
|
533
|
+
if "half" in type_str or type_str in {"f16", "float16"}:
|
|
534
|
+
return "f16v"
|
|
535
|
+
if "uint64" in type_str or "ulong" in type_str or type_str == "u64":
|
|
536
|
+
return "u64v"
|
|
537
|
+
if "uint16" in type_str or "ushort" in type_str or type_str == "u16":
|
|
538
|
+
return "u16v"
|
|
539
|
+
if "uint8" in type_str or "ubyte" in type_str or type_str == "u8":
|
|
540
|
+
return "u8v"
|
|
541
|
+
if "uint" in type_str or type_str in {"u32", "uint32"}:
|
|
542
|
+
return "u32v"
|
|
543
|
+
if "int64" in type_str or "slong" in type_str or type_str in {"s64", "long"}:
|
|
544
|
+
return "s64v"
|
|
545
|
+
if "int16" in type_str or "sshort" in type_str or type_str in {"s16", "short"}:
|
|
546
|
+
return "s16v"
|
|
547
|
+
if "int8" in type_str or "sbyte" in type_str or type_str == "s8":
|
|
548
|
+
return "s8v"
|
|
549
|
+
if "sint" in type_str or "int" in type_str or type_str in {"s32", "int32"}:
|
|
550
|
+
return "s32v"
|
|
551
|
+
if "bool" in type_str:
|
|
552
|
+
return "u32v"
|
|
553
|
+
return "f32v"
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
def _shader_value_lane_fallback(lane_name: str) -> list[float | int]:
|
|
557
|
+
"""Return a type-stable fallback for a missing ShaderValue lane."""
|
|
558
|
+
if lane_name.startswith(("u", "s")):
|
|
559
|
+
return [0] * 16
|
|
560
|
+
return [0.0] * 16
|
|
561
|
+
|
|
562
|
+
|
|
511
563
|
def _flatten_shader_var(var: Any) -> dict[str, Any]:
|
|
512
564
|
"""Recursively convert a ShaderVariable to a dict."""
|
|
513
565
|
members = getattr(var, "members", [])
|
|
@@ -529,13 +581,8 @@ def _flatten_shader_var(var: Any) -> dict[str, Any]:
|
|
|
529
581
|
if val is None:
|
|
530
582
|
values: list[Any] = []
|
|
531
583
|
else:
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
values = list(getattr(val, "u32v", [0.0] * 16)[:count])
|
|
535
|
-
elif "int" in type_str or "sint" in type_str:
|
|
536
|
-
values = list(getattr(val, "s32v", [0] * 16)[:count])
|
|
537
|
-
else:
|
|
538
|
-
values = list(getattr(val, "f32v", [0.0] * 16)[:count])
|
|
584
|
+
lane_name = _shader_value_lane_name(getattr(var, "type", ""))
|
|
585
|
+
values = list(getattr(val, lane_name, _shader_value_lane_fallback(lane_name))[:count])
|
|
539
586
|
|
|
540
587
|
return {
|
|
541
588
|
"name": var.name,
|