Skip to content

Draft: testing#5701

Closed
huidongc wants to merge 2 commits into
isaac-sim:developfrom
huidongc:testing
Closed

Draft: testing#5701
huidongc wants to merge 2 commits into
isaac-sim:developfrom
huidongc:testing

Conversation

@huidongc

Copy link
Copy Markdown
Collaborator

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
List any dependencies that are required for this change.

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (existing functionality will not work without user modification)
  • Documentation update

Screenshots

Please attach before and after screenshots of the change if applicable.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Automated Code Review

Summary

This PR makes two significant infrastructure changes:

  1. Removes SHA256 pinning from the Isaac Sim Docker image tag in CI configuration
  2. Disables GPU interop (fabricUseGPUInterop = false) across all 4 kit configuration files

Findings

🔴 High Severity

1. CI Reproducibility Risk - Floating Docker Image Tag

  • File: .github/workflows/config.yaml
  • Issue: Changing from a pinned digest (latest-develop@sha256:0dd49...) to a floating tag (latest-develop) removes build reproducibility guarantees.
  • Impact: CI builds may fail intermittently when upstream image updates introduce breaking changes. Debugging becomes difficult when builds are not reproducible.
  • Suggestion: If this is intentional to pick up latest changes, consider documenting the rationale. For production CI, pinned digests are recommended for stability.

🟠 Medium Severity

2. Performance Impact - Disabling PhysX-Fabric GPU Interop

  • Files: All 4 apps/isaaclab.python.*.kit files
  • Issue: Setting fabricUseGPUInterop = false disables direct GPU memory interop between PhysX and Fabric when Direct GPU mode is enabled.
  • Impact: This may cause:
    • Fallback to CPU readback paths, potentially degrading performance
    • Behavioral changes in GPU-accelerated simulation workflows
  • Suggestion: Please document the reason for this change. If this is to work around a specific bug, consider adding a code comment explaining the context.

3. Missing Context and Documentation

  • Issue: The PR description uses the default template without explaining the motivation for these changes.
  • Checklist: All items remain unchecked.
  • Suggestion: Before marking ready for review, please:
    • Describe the problem being solved or the reason for these changes
    • Link to any related issues or discussions
    • Update changelog if this is intended to be merged

🟡 Low Severity

4. Test Coverage Gap

  • Issue: No tests are added to validate the behavior changes from disabling GPU interop.
  • Suggestion: Consider adding or referencing performance benchmarks to ensure no regressions.

General Notes

  • This is marked as a Draft PR with title "testing" - if this is exploratory work, no action needed on the above.
  • If this is intended for merge, the configuration changes would benefit from additional context about the use case or issue being addressed.

This is an automated review. Please feel free to dismiss if this is purely experimental.


Update (commit 7913f4e):

Finding #2 addressed: GPU interop has been re-enabled (fabricUseGPUInterop = true) across all kit files. This reverts the concerning change from the original commit.

Remaining items:

  • Finding #1 (CI reproducibility - Docker SHA pinning) was not addressed in this commit
  • Documentation/context notes still apply for the overall PR

No new issues introduced in this commit.

@greptile-apps

greptile-apps Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This draft PR makes two categories of changes: it unpins the Isaac Sim CI image tag from a SHA digest to the floating latest-develop tag, and it globally disables fabricUseGPUInterop across all four kit app configuration files.

  • CI image tag: The pinned latest-develop@sha256:0dd49a... reference is replaced with the bare latest-develop tag. This makes the CI environment non-deterministic — any upstream image push silently changes what all workflows run against, making regressions hard to bisect.
  • fabricUseGPUInterop = false: Applied uniformly to isaaclab.python.headless.kit, isaaclab.python.headless.rendering.kit, isaaclab.python.kit, and isaaclab.python.rendering.kit. The files' own comments state this setting is intended to be true when Direct GPU mode (suppressReadback=true) is active; disabling it forces a CPU roundtrip in what are expected to be GPU-pipeline configurations.

Confidence Score: 2/5

Not safe to merge in current form — both changes introduce real regression risk to CI reliability and GPU pipeline correctness.

The CI image tag was deliberately pinned with a SHA digest; removing the pin means every workflow run from this point forward could execute against a different image without any signal in the git history. Separately, disabling fabricUseGPUInterop across all kit files conflicts with the inline documentation that calls for it to be true when Direct GPU mode is active, and no issue or rationale is referenced in the PR description.

.github/workflows/config.yaml (image pin removed) and all four apps/*.kit files (GPU interop disabled).

Important Files Changed

Filename Overview
.github/workflows/config.yaml Removes SHA-digest pin from isaacsim_image_tag, switching from an immutable reference to a floating latest-develop tag — breaks CI reproducibility.
apps/isaaclab.python.headless.kit Sets fabricUseGPUInterop=false, disabling direct PhysX-GPU-to-Fabric interop that is expected to be active when Direct GPU mode (suppressReadback=true) is used.
apps/isaaclab.python.headless.rendering.kit Same fabricUseGPUInterop=false change as isaaclab.python.headless.kit applied to the headless rendering variant.
apps/isaaclab.python.kit Same fabricUseGPUInterop=false change applied to the standard (non-headless) kit app configuration.
apps/isaaclab.python.rendering.kit Same fabricUseGPUInterop=false change applied to the rendering kit variant.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[CI Workflow Starts] --> B[Load config.yaml]
    B --> C{Image Tag}
    C -- "Before: latest-develop@sha256:..." --> D[Deterministic / Pinned Image]
    C -- "After: latest-develop" --> E[Floating Tag - Non-reproducible]

    F[Isaac Lab App Launch] --> G{fabricUseGPUInterop}
    G -- "Before: true" --> H[Direct PhysX GPU to Fabric Interop]
    G -- "After: false" --> I[CPU Roundtrip - Potential perf/state issue]

    style E fill:#ffcccc,stroke:#cc0000
    style I fill:#ffcccc,stroke:#cc0000
    style D fill:#ccffcc,stroke:#006600
    style H fill:#ccffcc,stroke:#006600
Loading

Reviews (1): Last reviewed commit: "testing" | Re-trigger Greptile

# workflow via yq and exposed as job outputs (see e.g. .github/workflows/build.yaml).
isaacsim_image_name: nvcr.io/nvidian/isaac-sim
isaacsim_image_tag: latest-develop@sha256:0dd49a1121b297dc85eee7777a9c528318683dbe03b29fd01f2059ac1b099301
isaacsim_image_tag: latest-develop

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Unpinned mutable image tag removes CI reproducibility

The image tag was changed from a SHA-digest-pinned reference (latest-develop@sha256:0dd49a...) to the floating tag latest-develop. Floating tags are mutable — if the upstream nvcr.io/nvidian/isaac-sim:latest-develop image is updated, every subsequent CI run silently picks up the new image without any code change, making failures hard to bisect and test results non-reproducible. The original SHA digest was clearly there to guarantee a stable, immutable build environment.

Comment thread apps/isaaclab.python.headless.kit Outdated
Comment on lines +164 to +165
### When Direct GPU mode is enabled (suppressReadback=true) use direct interop between PhysX GPU and Fabric
fabricUseGPUInterop = true
fabricUseGPUInterop = false

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 GPU interop disabled while Direct GPU mode is active

The comment directly above this setting reads: "When Direct GPU mode is enabled (suppressReadback=true) use direct interop between PhysX GPU and Fabric." Setting fabricUseGPUInterop = false under that mode breaks the intended PhysX-GPU-to-Fabric data path, forcing an unnecessary CPU roundtrip and potentially causing incorrect state readback in headless pipelines. This same change is applied across all four kit files (isaaclab.python.headless.kit, isaaclab.python.headless.rendering.kit, isaaclab.python.kit, isaaclab.python.rendering.kit). If this is intentional, an explanation or follow-up issue should be referenced.

@huidongc huidongc closed this May 21, 2026
@huidongc huidongc deleted the testing branch May 21, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-sim Related to Isaac Sim team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant