Skip to content

nvproxy: include ngx in "all" container driver capabilities - #14450

Merged
copybara-service[bot] merged 1 commit into
google:masterfrom
botirkhaltaev:botir/nvproxy-capngx
Aug 28, 2026
Merged

nvproxy: include ngx in "all" container driver capabilities#14450
copybara-service[bot] merged 1 commit into
google:masterfrom
botirkhaltaev:botir/nvproxy-capngx

Conversation

@botirkhaltaev

@botirkhaltaev botirkhaltaev commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Omniverse / Isaac Sim RTX camera workloads initialize NGX (DLSS / Super Resolution) through libnvidia-ngx. If that library is not injected, Kit logs NGX isn't enabled / Failed to create NGX context, and the Vulkan device is often lost (VkResult: ERROR_DEVICE_LOST) while loading a scene with RTX cameras.

nvproxy already has CapNGX as the nvidia-container-toolkit ngx flag (--ngx injects libnvidia-ngx). It is not a Resource Manager class and does not need a new ioctl. No handler in version.go is keyed on CapNGX.

The gap is AllContainerDriverCaps: it did not include CapNGX, so NVIDIA_DRIVER_CAPABILITIES=all never passed --ngx to nvidia-container-cli. Toolkit's SupportedDriverCapabilities does include ngx (compute,compat32,graphics,utility,video,display,ngx).

This change adds CapNGX to AllContainerDriverCaps only. DefaultDriverCaps stays compute,utility, so ngx remains off unless the container requests all or ngx and the runtime allows it.

Split from the AMPERE_B ioctl work in #14449.

Assisted-by: Cursor

Test plan

  • With NVIDIA_DRIVER_CAPABILITIES=all, libnvidia-ngx is injected
  • Isaac Sim 5.1 headless RTX camera init no longer fails with Failed to create NGX context / ERROR_DEVICE_LOST once ngx is included in all
  • Default capabilities (compute,utility) still do not pass --ngx
  • No RM allocation/class changes; independent of nvproxy: support AMPERE_B and GET_HS_CREDITS_MAPPING #14449

Comment thread pkg/sentry/devices/nvproxy/nvconf/caps.go
Comment thread pkg/sentry/devices/nvproxy/nvconf/caps.go Outdated
@botirkhaltaev
botirkhaltaev marked this pull request as draft August 27, 2026 16:30
@botirkhaltaev
botirkhaltaev marked this pull request as ready for review August 27, 2026 17:53
nvidia-container-toolkit's SupportedDriverCapabilities includes ngx, so
NVIDIA_DRIVER_CAPABILITIES=all should pass --ngx to nvidia-container-cli
and inject libnvidia-ngx.

Assisted-by: Cursor
@botirkhaltaev botirkhaltaev changed the title nvproxy: include CapNGX in AllContainerDriverCaps nvproxy: include ngx in "all" container driver capabilities Aug 27, 2026
@ayushr2

ayushr2 commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

LGTM, can we have a Googler merge this?

copybara-service Bot pushed a commit that referenced this pull request Aug 28, 2026
Omniverse / Isaac Sim RTX camera workloads initialize NGX (DLSS / Super Resolution) through `libnvidia-ngx`. If that library is not injected, Kit logs `NGX isn't enabled` / `Failed to create NGX context`, and the Vulkan device is often lost (`VkResult: ERROR_DEVICE_LOST`) while loading a scene with RTX cameras.

nvproxy already has `CapNGX` as the nvidia-container-toolkit `ngx` flag (`--ngx` injects `libnvidia-ngx`). It is not a Resource Manager class and does not need a new ioctl. No handler in `version.go` is keyed on `CapNGX`.

The gap is `AllContainerDriverCaps`: it did not include `CapNGX`, so `NVIDIA_DRIVER_CAPABILITIES=all` never passed `--ngx` to `nvidia-container-cli`. Toolkit's `SupportedDriverCapabilities` does include `ngx` (`compute,compat32,graphics,utility,video,display,ngx`).

This change adds `CapNGX` to `AllContainerDriverCaps` only. `DefaultDriverCaps` stays `compute,utility`, so ngx remains off unless the container requests `all` or `ngx` and the runtime allows it.

Split from the AMPERE_B ioctl work in #14449.

Assisted-by: Cursor

## Test plan
- [x] With `NVIDIA_DRIVER_CAPABILITIES=all`, `libnvidia-ngx` is injected
- [x] Isaac Sim 5.1 headless RTX camera init no longer fails with `Failed to create NGX context` / `ERROR_DEVICE_LOST` once ngx is included in `all`
- [ ] Default capabilities (`compute,utility`) still do not pass `--ngx`
- [ ] No RM allocation/class changes; independent of #14449

FUTURE_COPYBARA_INTEGRATE_REVIEW=#14450 from botirkhaltaev:botir/nvproxy-capngx 551ba13
PiperOrigin-RevId: 972216146
@copybara-service
copybara-service Bot merged commit 2f30bd5 into google:master Aug 28, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants