Kind of make sense, considering that indirect rendering prevents the
GPU=3D20 from rendering directly to the screen. It would have to rend=
into an=3D20 off-screen buffer, and then use 2D blitting to blit that
into display. It=3D =3D20
could theoretically work, but doesn’t in my experience. (BTW,
that’s=3D20 actually how double buffered “direct” rendering is done b=
most GLX=3D20 drivers… A hint as to why indirect rendering doesn’t,
ok. this could be so, but it still doesn’t explain why X need’s (and
gets!) allmost all CPU-time. and the rendering-thread (if there is one
- i don’t know …) and my app seems to run “asynchronously”
Sure it does! The X server is “doing” the rendering, regardless of=20
there being h/w acceleration or not.
with this in mind, i think, i understand the problem.
i always used glFlush(); to force the “server” to execute my gl-commands.
glFlush guarantees execution in a “finite” time but not more.
i think the effect with glx “indirect” is so extreme because the rendering
time with glx “indirect” is still “finite” but really huge.
so glFinish(); has solved my problem. (if you know a better solution, please