X11 chuyển tiếp ứng dụng OpenGL từ máy chạy thẻ NVIDIA sang máy có thẻ AMD


15

Tôi quan tâm đến việc chuyển tiếp một phiên X11 qua SSH, để khởi chạy một quy trình từ xa sử dụng OpenGL (cụ thể là vọng lâu cho bất kỳ ai quen thuộc.)

Vấn đề mà tôi dường như đang gặp phải là vọng lâu bị hỏng do sự không phù hợp trong các card đồ họa; nó không thể tìm thấy tiện ích mở rộng "NV-GLX". Đầu ra lỗi chính xác:

Xlib:  extension "NV-GLX" missing on display "localhost:10.0".
Xlib:  extension "NV-GLX" missing on display "localhost:10.0".
X Error of failed request:  GLXUnsupportedPrivateRequest
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Serial number of failed request:  24
  Current serial number in output stream:  25

Máy từ xa đang chạy với thẻ NVIDIA và máy cục bộ của tôi đang sử dụng thẻ AMD.

Tôi đã thử nghiệm chuyển tiếp X11 của vọng lâu giữa hai máy bằng thẻ NVIDIA. Nó hoạt động tốt.

Gần như tôi có thể nói, có vẻ như một trong ba điều đang xảy ra:

  1. Tôi đang làm gì đó sai,
  2. Những gì tôi muốn làm là không thể,
  3. Gazebo không xây dựng theo cách thức bất khả tri với các loại tiền mã hóa phân nhánh cho các phần cứng khác nhau; bất cứ hệ thống nào của bạn trông như thế nào khi nó được xây dựng là những gì bạn nhận được.

Máy từ xa đang chạy Ubuntu và máy cục bộ của tôi là máy Mac chạy 10.8.2; Tôi đã biết rằng tôi có x11 chuyển tiếp được thiết lập đúng để sử dụng bình thường vì tôi có thể có được những thứ như xclock để mở trong XQuartz. Giải pháp (nếu có) cũng tốt nhất là hoạt động cho các hệ điều hành khác, bao gồm cả Windows trên WinSCP.

Câu trả lời:


9

Một vài lưu ý từ bài viết GLX Wikipedia :

GLX [là] Một phần mở rộng của giao thức X, cho phép máy khách (ứng dụng OpenGL) gửi các lệnh kết xuất 3D đến máy chủ X (phần mềm chịu trách nhiệm hiển thị). Phần mềm máy khách và máy chủ có thể chạy trên các máy tính khác nhau.

Nếu máy khách và máy chủ đang chạy trên cùng một máy tính và có card đồ họa 3D được tăng tốc bằng trình điều khiển phù hợp, hai thành phần trước có thể được bỏ qua bởi DRI. Trong trường hợp này, ứng dụng khách sau đó được phép truy cập trực tiếp vào phần cứng video thông qua một số lớp API.

Tôi tin rằng điểm đầu tiên trả lời câu hỏi của bạn về việc điều này có thể hay không: nó chắc chắn là có thể. Thứ hai có thể cung cấp một lời giải thích cho lý do tại sao chương trình máy khách của bạn khăng khăng sử dụng các tính năng của máy chủ X cục bộ của nó (trình điều khiển NV GLX) - có lẽ nó nghĩ rằng đó localhost:10.0là cùng một máy tính và vì vậy đã thử kết nối hướng.

Những điều cần thử:

  1. Thay vì gazebo, hãy thử glxdemo.
  2. Nếu có thể, hãy lấy hai máy tính trên cùng một mạng và đưa ssh ra khỏi hình ảnh
  3. Súng lớn: lời mời stracecủa bạn gazebovà tìm hiểu tại sao nó lại tải nv-glx

Chúc may mắn!


Các máy tính đã ở trên cùng một mạng, nhưng chúng tôi muốn chuyển tất cả các máy gazebo của chúng tôi vào tủ máy chủ vào một lúc nào đó nhưng vẫn có sẵn hình ảnh của phần mềm cho chúng tôi, đó là lý do tại sao tôi tìm đến SSH đường hầm. Trừ khi bạn nói rằng việc có chúng trên cùng một mạng cho phép cấu hình khác nhau khiến SSH không cần thiết (tôi đoán là thiết lập một số thiết lập xhost / client điên rồ, tôi không biết nhiều về X11).
Doug Stephen

Không cần ssh - nếu đây là tất cả các hệ thống tin cậy riêng tư của bạn, hãy thử xhost +trên máy cục bộ của bạn và đặt HIỂN THỊ trên hệ thống từ xa thành 'ip-or-name-of-local: 0`
ckhan

1
Tôi không thể đi gazebolàm, nhưng tôi đánh dấu đây là câu trả lời được chấp nhận vì các đề xuất của bạn là đúng về mặt kỹ thuật. Tôi có thể tạo đường hầm glxdemobằng cách sử dụng tất cả các đề xuất bạn đã thực hiện (ssh và xserver / xclient qua mạng) nhưng chính Gazebo dường như không xây dựng các đường dẫn mã phân nhánh và nó giả định rằng nó không được chạy trong cấu hình kỳ lạ này. Cảm ơn!.
Doug Stephen

Có web gazebo và nó thực sự tuyệt vời, bạn có thể khởi động máy chủ gazebo trên một máy từ xa (thậm chí cả mạng LAN), đường hầm với ssh và mở trình duyệt của bạn để xem gazebo ở đó. Giải pháp tốt nhất từ ​​trước đến nay.
Mehdi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.