Sudah lama sejak saya mengajukan pertanyaan ini, jadi saya pikir saya akan menyebutkan solusi yang akhirnya kami gunakan.
Membajak layar X lokal
Pada akhirnya, saya hanya menjalankan program opengl jarak jauh pada layar X lokal server. Mesin itu menjalankan edisi server Ubuntu dan tidak menjalankan xserver sebagai default, jadi saya harus mengatur xserver untuk dijalankan saat startup (saya baru saja menginstal paket ubuntu-desktop Ubuntu, membunuh nyamuk dengan godam palu), dan kemudian memberi diriku akses ke layar X menggunakan perintah ini sebagai root: "export DISPLAY =: 0.0; xhost + local:". Lalu saya bisa ssh ke mesin, panggil "export DISPLAY =: 0.0" dan kemudian jalankan program opengl saya seperti biasa. Siapa pun yang duduk di mesin jarak jauh akan melihat jendela sembul dan menonton program saya berjalan, tetapi kami tidak memiliki monitor yang terhubung sehingga ini bukan masalah.
Sangat penting untuk menggunakan beberapa bentuk rendering offscreen, karena membaca piksel langsung dari buffer warna pada layar dapat menghasilkan data sampah jika jendela menjadi dikaburkan oleh jendela lain. Karena Anda tidak dapat melihat layar X, sulit untuk mengetahui apakah ini telah terjadi. Render pada layar (mis. Objek Framebuffer (fbo) atau pbuffer) tidak memiliki masalah ini.
Membajak Xscreen lokal server bukanlah solusi yang ideal, jadi inilah beberapa alternatif yang saya temukan di sepanjang jalan:
Framebuffers Virtual
Xvfb adalah sebuah pilihan, tetapi itu tidak berfungsi untuk saya, karena OpenGL tidak mendapat manfaat dari akselerasi perangkat keras, dan objek framebuffer tidak didukung, yang diperlukan untuk interoperabilitas CUDA dengan OpenGL. Namun demikian, ini mungkin opsi yang bisa diterapkan di mana pembajakan layar lokal tidak dapat diterima, atau di mana pengguna tidak bisa mendapatkan hak istimewa xhost.
VirtualGL
Dari situs web VirtualGL:
VirtualGL adalah paket open source yang memberikan Unix atau Linux remote display kemampuan untuk menjalankan aplikasi OpenGL dengan akselerasi perangkat keras 3D lengkap.
Ini persis apa yang saya inginkan, dan itu terlihat sangat menjanjikan, tetapi saya tidak punya waktu untuk berurusan dengan ketergantungan perpustakaan baru, jadi saya belum mengujinya. Dugaan saya adalah bahwa ini adalah solusi ideal setelah saya dapat membuatnya dikompilasi, diinstal, dan dikonfigurasi. Inilah yang VirtualBox dan beberapa server VNC gunakan untuk mendukung akselerasi perangkat keras 3D.