From: Brian P. <bri...@tu...> - 2007-06-08 15:05:27
|
Andrew Zabolotny wrote: > Hello! > > I'm trying to use the Ogre3D engine with MesaGL. The problem is that > the GL context that is selected gives horrible flickering during > a continuous image refresh at the maximal possible rate. The context > is definitely a doublebuffering context: > > Using GL context format: FBConfigID:0x24 VisualID:0x24 bufferSize:32 > level:0 doubleBuffer:1 stereo:0 caveat:0x8000 renderType:1 > drawableType:1 auxBuffers:0 depth bits:16 stencil bits:8 R/G/B/A > bits:8/8/8/8 Accum R/G/B/A bits:16/16/16/16 Max PBuffer W/H/Size:0/0/0 > Sample buffers/samples:0/0 > > I'm using MesaGL 6.5.1 from Fedora Core 6 together with xorg-x11 7.1. > Xorg is running with the vesa driver. So you're using software rendering then? > What could cause the flicker? I've tried to add an glFinish() right > after the glXSwapBuffers() - doesn't help at all. Do you call glDrawBuffer(GL_FRONT) at any point? You could call glGetIntegerv(GL_DRAW_BUFFER, &i) to check if you're drawing to the back buffer as you expect. > I wrote a small program (that draws just one rotating polygon) - it > doesn't flicker. However, glxgears seems to show a *similar* (but not > identical) effect - it seems to skip somehow frames, e.g. I can clearly > see about 10-15 FPS on the screen, but glxgears itself reports 1400 FPS! The rotation rate of the gears is regulated to prevent strobing or temporal aliasing. So, it may looks slow but actually rendering very quickly. > Looks like MesaGL is somehow skipping frames in order to save the > extra rendering. Could this be the cause of the flicker I'm seeing? No. Mesa never simply drops rendering commands. -Brian |