glDrawArray very slow on remote computer

Hi all,

this is my first post on the GL forum :wink:

I spent the last week in rewritting completely my application in order to use non-immediate rendering (glDrawArray) and VBO (when available). In the past I was using display list built out of direct rendering.

I’ve noticed some improvement in the performance, but nothing very spectacular (with respect to the code complication).

on the other hand, I have now an important issue…
when running on a remote computer (via SSH), it is slow like hell…
first display takes minute to come (when it is a matter of 2-3sec in local rendering).

The remote computer does not support VBO, so a standard glDrawArray is used (but compiled in display list). Why is it so slow? is the remote computer sending all the Vertices array to my local graphic card? (It is the only explication I see).

Note that the same code (displaying exactly the same objects) has been tried on the same remote computer and it was much faster in the past. (when using immediate rendering in display list)

please, how can I fix this?

thanks a lot in advance,


What sort of remoting technology do you use? Remote desktop on windows? What kind of network interconnection?

Do you even get hardware accelerated context when remoting? On windows you don’t as far as I remember.


I have tried two things:

  1. client under Windows - server under linux
    with XWin32 (don’t know exactly what is used inside this tools).

  2. client under Linux - server under linux
    with a simple ssh -Y

In the twho case, I observed the same slowness…

network is a standard internet link ~10Mb.

the network or the visualisation tools is not the problem, since I used the same soft in same conditions since years.
the only change I did in the soft is to use glDrawElements instead of imadiate mode (encapsualted in display list in the two cases).

note that in case of the glDrawElements, the vertex array are freed once the display list have been built. I don’t know it change anything.


Ok… After two days of investigation, I found the problem…
I think it has nothing to do with the fact that I am using a remote computer. It seems to come from glGenList(1).
Which is really slow (up to 8ms) on the remote computer…

I solved the problem in generating the lists by bunch of 10000Lists. Generating 10K list or 1List take more or less the same time (30ms vs 8ms). So I have a created a global stack of DisplayListId that I distribute each time one lass of my soft needs one. I speed up the init of my soft just with this.
(it seems incredible, but that was the unique problem)

thanks anyway for help,