Failed to initialize graphics environment with VNC

Problem

I am attempting to run the Isaac Sim main application through a VNC desktop session. I have set the DISPLAY environment variable to :4. To enable server-side hardware rendering, I have installed and configured VirtualGL. However, when I try to execute the application using the command vglrun ./isaac-sim.sh, the application crashes during startup with the following error messages:

Xlib:  extension "NV-GLX" missing on display ":4".
2024-10-29 18:14:34 [3,612ms] [Error] [carb.graphics-vulkan.plugin] VkResult: ERROR_INITIALIZATION_FAILED
2024-10-29 18:14:34 [3,612ms] [Error] [carb.graphics-vulkan.plugin] vkCreateSwapchainKHR failed.
2024-10-29 18:14:34 [3,612ms] [Error] [carb.graphics-vulkan.plugin] Failed to create a swapchain.
2024-10-29 18:14:34 [3,612ms] [Error] [omni.kit.renderer.plugin] createSwapchain failed. Width: 1440, height: 900, Format: 9
2024-10-29 18:14:34 [3,613ms] [Error] [omni.kit.renderer.plugin] Failed to initialize graphics environment.

I have attached the complete run log from the Isaac Sim session below.

Additional Information

  • VNC Configuration: I am running the app through a VNC desktop session with TigerVNC, and the DISPLAY variable is set to :4.
  • VirtualGL: I have installed and verified VirtualGL functionality. The command glxinfo shows that the NVIDIA driver is being utilized, indicating that VirtualGL is set up correctly.
  • Local Execution: When I run the Isaac Sim application directly on a local physical display, it loads successfully without any errors.
  • Vulkan Setup: I executed vulkaninfo within the VNC session, and it listed the GPUs correctly. I have provided the complete vulkaninfo output if needed.
  • NVIDIA Driver: I am using the dirver version 550.54.14 for my GPUs.

kit_20241029_140620.log (492.8 KB)
vulkaninfo.txt (204.2 KB)

Isaac Sim Version

4.2.0

Operating System

Ubuntu 22.04

1 Like

I met the same issue under almost the same setting(with two 4090 GPUs). My solution is to set CUDA_VISIBLE_DEVICES to the same GPU used for display. But I don’t actually under stand the reason behind this :)