So I have an OpenGL application which I'm trying to run on a host, and view this on a client with a VNC Viewer.

I originally was using the standard "vncserver" program. It was nice in that it was able to start X windows on display 1. The default script (.vnc/xstartup) started a GUI shell, which was nice.

Though I kept getting an error when I tried starting my program as the only startup program for the server. The error read:
freeglut (/home/<username>/Desktop/TEST/a.out):  ERROR:  Internal error <FBConfig with necessary capabilities not found> in function fgOpenWindow
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  4 (X_DestroyWindow)
  Resource id in failed request:  0x0
  Serial number of failed request:  18
  Current serial number in output stream:  21
(which I go into full detail about in this post)

So I go forth asking here to no avail, and googling it to almost no avail. It seems the rationale is that the VNC server doesn't support the frame buffer type that GLUT or OpenGL is using (not entirely sure which, but since it's trouble building a window, I'm going to assume GLUT).

Please excuse this paragraph, the VGL insert is quite confusing to me:
So through my research I stumble upon x11vnc and virtual GL, to remap the OpenGL and GLX commands to things..."understood" by something (X11), which should allow for OpenGL forwarding - or something like that...(not sure why this matters as X11 obviously displays it enough locally) so it has the ability to host on display 0, which vncserver could not.

So I run the application locally, connect the client on display 0, and it works.

I try switching it to display 1, it fails. Why? The failure message is pretty much the same thing which alludes to something not being supported somewhere along the way. I'm not sure why display 0 is any damn different than display 1 but I've had nothing but problems with this .

Anybody have any advice for me to try and take next steps in this situation? I can't figure out why X11 treats them differently, that doesn't make any sense.