Próbuję uruchomić program, który używa OpenGL do renderowania modelu w rzutni przez VNC bez powodzenia.
Otrzymuję komunikat o błędzie - Xlib: brak rozszerzenia „GLX” na wyświetlaczu „: 1.0”.
Rozumiałem, że VNC można skonfigurować do zdalnego renderowania całej grafiki i wysyłania skompresowanego zrzutu ekranu z bufora wyświetlania do lokalnego klienta. Wydaje się, że to neguje potrzebę rozszerzeń GLX na lokalnym kliencie. Czy VNC można skonfigurować w ten sposób i czy mógłbyś krótko opisać, w jaki sposób?
Zdalny host:
vncserver na RHEL 5
Klient lokalny:
UltraVNC w systemie Windows XP
Odpowiedzi:
Możesz spojrzeć na Virtual GL
Cytat: „VirtualGL to pakiet typu open source, który daje dowolnemu oprogramowaniu do zdalnego wyświetlania w systemach Unix lub Linux możliwość uruchamiania aplikacji OpenGL z pełnym przyspieszeniem sprzętowym 3D”
źródło
Używam x11vnc, aby uzyskać zdalny dostęp do wszystkiego, co wyświetla monitor. x11vnc komunikuje się z lokalnym serwerem X11 i kopiuje bufor ramki z serwera do klienta przez vnc. Ponieważ lokalny serwer X11 renderuje wszystko z akceleracją sprzętową, otrzymuję akcelerację sprzętową OpenGL przez VNC, nawet przy wszystkich fajnych efektach pulpitu. Oto jak uruchamiam x11vnc:
Myślę, że działa prawie każda przeglądarka VNC, ale polecam turbovnc lub tigervnc. Najpierw wypróbowałem VirtualGL i działa dobrze, ale nie dla całego pulpitu, tylko dla poszczególnych aplikacji OpenGL.
Można nawet zmienić rozdzielczość na wyświetlaczu / vnc za pomocą xrandr. Np. Tak:
(Możliwe jest dodawanie nowych rozdzielczości, jeśli dostępne tryby nie są wystarczające, ale jest to poza zakresem.)
Więc teraz mam w pełni akcelerowaną sprzętowo OpenGL sesję VNC o zmiennym rozmiarze.
źródło
Wyłącz specjalny sterownik Video Hook, którego używa UltraVNC, lub użyj TightVNC.
Ponieważ sterownik UltraVNC służy do poprawy wydajności, upuszcza wszelkiego rodzaju przetwarzanie wideo wykonywane na karcie wideo, takie jak OpenGL.
Sterownik wideo, który UltraVNC instaluje domyślnie, powoduje, że nie może wyświetlać grafiki OpenGL. Pamiętaj, że wyłączenie sterownika drastycznie obniży wydajność. Należy również pamiętać, że podczas wyświetlania elementów renderowanych w wydajności OpenGL będzie to miało negatywny wpływ na oba końce, ponieważ komputer kliencki ma teraz dużo więcej do zrobienia, a wymagana przepustowość jest znacznie wyższa. Nie oczekuj niczego przez 4 sekundy na klatkę (nie 4 fps, więcej jak 0,25 fps)
źródło