Làm thế nào để sử dụng 3D hiệu quả thông qua kết nối từ xa?


11

Tôi có một PC yếu (máy khách) nhưng với hiệu suất 3D chấp nhận được và một PC mạnh (máy chủ) có khả năng chạy ứng dụng bằng OpenGL hai lần, tức là một lần cục bộ và một lần từ xa cho máy khách. Hiện tại, tôi ssh -Xtham gia vào nó, nhưng kết quả đầu ra giao diện điều khiển của máy khách được sử dụng và tôi chỉ nhận được 3 khung hình mỗi giây (khung hình / giây). Trên thực tế, mã hóa của ssh là không cần thiết vì đây là trên mạng LAN, nhưng đó là những gì tôi đã biết cho các ứng dụng từ xa ...

Vì vậy, làm thế nào có thể tăng hiệu suất của khách hàng? Ý tưởng của tôi là

  • sử dụng tăng tốc phần cứng, nhưng máy chủ hay máy khách và làm thế nào?
  • sử dụng một cái gì đó khác với ssh

Tôi biết, ở độ phân giải đầy đủ và không nén tinh vi, mạng LAN 100 Mbit / giây sẽ không tạo thêm khung hình / giây, nhưng đó là một ứng dụng cửa sổ của ca. 800x450, vì vậy về mặt lý thuyết có thể lên tới 12 khung hình / giây (ở mức 24 bit / pixel) bằng cách sử dụng dữ liệu đồ họa không nén. Và có thể một cái gì đó tốt hơn là có thể sử dụng GPU của khách hàng hoặc một số nén thông minh.

-

chỉnh sửa Hóa ra những gì tôi muốn về cơ bản là một phiên bản địa phương về những gì ví dụ như OnLivegaikai cung cấp. Có cái gì đó như thế này cho Linux (và có thể miễn phí) không?

-

edit2 VirtualGL trông giống như giải pháp tốt nhất (mặc dù hiện tại không hoạt động với tôi), nhưng tôi tự hỏi liệu có thể thực hiện kết xuất phần cứng trên máy khách không



Theo dõi vì các PC nằm cạnh nhau dù thế nào và tôi tự hỏi tại sao không sử dụng một PC cho hai người dùng: Một PC có thể được sử dụng cùng lúc bởi hai người dùng thông qua màn hình kép không?
Tobias Kienzler

Câu trả lời:


6

Bạn có thể kiểm tra VirtualGL cùng với TurboVNC nên cung cấp cho bạn với 20fps @ 1280x1024 trên 100 Mbit ( xem wikipedia ).

Xin lưu ý rằng nó có thể không hoạt động với tất cả các ứng dụng, nó phụ thuộc vào cách họ sử dụng OpenGL.


+1 âm thanh này chính xác như những gì tôi đang tìm kiếm, cảm ơn bạn! (Tôi sẽ chấp nhận câu trả lời sau (hy vọng) thử nghiệm thành công)
Tobias Kienzler


Bây giờ tôi có một PC mới hỗ trợ pbuffer, nhưng không may là vglrun segfaults bây giờ. Điều này có thể là do máy chủ chạy trên 64 bit trong khi máy khách ở trên 32 bit?
Tobias Kienzler

(được chấp nhận vì câu trả lời là đúng và segfault là một câu hỏi riêng)
Tobias Kienzler

1

Đây là một câu hỏi cũ nhưng nó vẫn có liên quan. Có một hướng dẫn từng bước về cách định cấu hình và khắc phục sự cố kết xuất 3D X11 của ứng dụng từ xa trên phần cứng cục bộ: Tăng tốc phần cứng OpenGL thông qua kết nối x11 ssh từ xa

Trò chơi Chromium BSU được sử dụng trong bài viết làm ví dụ. Nó chạy với 5-8 FPS với kết xuất phần mềm mặc định thông qua kết nối SSH, 30 FPS với kết xuất phần cứng gián tiếp và> 30 FPS với kết nối TCP X11 không được mã hóa. Lưu ý rằng nó chỉ hoạt động cho một số ứng dụng.

Tóm tắt tóm tắt của bài viết

Kết nối gián tiếp và kết nối TCP bị vô hiệu hóa trong cấu hình máy chủ X11 mặc định. +iglx and -listen tcptham số cho phép chúng. Ngoài ra còn có LIBGL_ALWAYS_INDIRECT=1biến bắt buộc kết xuất gián tiếp trên máy khách X11.


Cảm ơn câu trả lời của bạn. Nó được đánh giá rất cao để lưu ý ý chính của các bài đăng blog được liên kết ở đây trong trường hợp liên kết đã chết mặc dù (ngay cả khi bạn chỉ nêu "sử dụng lightdmvới iglx" như vậy). Tôi hiện không cần điều này nữa, nhưng tôi sẽ thử lại lần sau;) Có thể người khác cũng thấy những phát hiện của bạn hữu ích.
Tobias Kienzler

Điểm tốt. Tôi đã thêm chi tiết chính của bài viết.
evpo

0

Điều đó có thể đúng nếu bạn có hai máy tính để bàn. Nhưng nếu bạn có một máy tính xách tay WiFi cũ có thể sử dụng ở bất cứ đâu tại nhà (ví dụ Ti5600 với Ubuntu 10.04 là máy khách của bạn và máy tính để bàn có bảng GTX cùng với Bộ định tuyến Wi-Fi dự phòng, có một máy khách OpenGL từ xa có vẻ là một ý tưởng tốt.

Vấn đề là nhận được một bối cảnh OpenGL từ xa (phía máy chủ). Bạn có thể chạy ssh -X trên máy khách của mình. Nhưng nếu bạn chạy glxinfo trên hệ thống từ xa, bạn sẽ có được ứng dụng khách cục bộ, điều này sẽ đưa bạn trở lại nơi bạn bắt đầu. Bạn có thể đặt biến môi trường HIỂN THỊ của mình cho máy chủ từ xa đó và bạn có thể sử dụng màn hình đó làm màn hình thứ hai mà vẫn không giúp được gì.

Một giải pháp khác là viết các ứng dụng máy tính để bàn của bạn để chúng có thể sử dụng bối cảnh GLX từ xa:

http://arrayfire.com/remote-off-screen-rendering-with-opengl/


Cảm ơn bạn. Vì vậy, có một sự thay thế cho giao thức X để truyền 3D? Xin lỗi, tôi nên đặt máy chủ và máy khách trong ngoặc kép, tôi chỉ có nghĩa là có những từ ngắn hơn cho PC mạnh và yếu - cả hai PC nên được sử dụng làm giao diện người dùng cùng lúc như thể chúng là máy tính để bàn nhưng với tất cả CPU đều hoạt động và truy cập RAM được thực hiện bởi PC tốt hơn. PC yếu không có đủ năng lượng CPU và RAM để chạy ứng dụng
Tobias Kienzler

Không phải là tôi biết. Loại 3D mà bạn đang nghĩ đòi hỏi rất nhiều băng thông.
Keith

đó là sự thật :( OTOH, OnLive , gaikai và những người khác tuyên bố này thậm chí có thể cho các trò chơi trên internet ...
Tobias KIENZLER

Ok, tôi đã xem. Tôi cũng không nghĩ họ đang truyền các khung hình theo cách đó. Họ đang tải xuống và chạy cục bộ, và chỉ thu thập thông tin kiểm soát và cập nhật thông tin, giống như các trò chơi trực tuyến hiện có. Ngay cả khi họ đã làm, nó sẽ phải có độ phân giải thấp để nén cao.
Keith

Theo cách tôi hiểu, họ chạy trò chơi từ xa và chỉ truyền một luồng HD của video trong khi nhận các sự kiện bàn phím và chuột. Nhưng tất nhiên, người ta không thể truyền 30 khung hình / giây HD qua internet mà không cần nén ...
Tobias Kienzler
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.