The Blender-on-G400 issue

Glynn Clements glynn at gclements.plus.com
Mon Dec 12 19:00:31 PST 2005


Brian Paul wrote:

> > It appears that the G400 driver is getting its front and back buffers
> > confused in certain situations. This is a problem for Blender as the
> > code extensively mixes drawing to both buffers.

Actually, it seems to get its front and back buffers confused in most
situations.

> > Does anyone have any suggestions on where to go from here?
> 
> I'd use gdb to set some breakpoints in the mga driver, starting at 
> mgaDDDrawBuffer() to make sure it's doing what's expected.
> 
> Alternately, you might try to write a small test program to repro the bug.

I decided to take the latter approach. I've attached the test program.

The redisplay handler selects the back buffer for drawing, clears the
buffer, draws a red rectangle on the back buffer, then swaps the
buffers.

The 'f' key draws a yellow rectangle to the front buffer.
The 'b' key draws a green rectangle to the back buffer.
The 's' key calls glutSwapBuffers().
The 'r' key calls glutPostRedisplay();

Running without DRI (LIBGL_ALWAYS_INDIRECT=1) results in the expected
behaviour, while using the G400 DRI doesn't. I can't identify the
exact pattern, other than that it appears that calls to glDrawBuffer
sometimes work and sometimes don't. E.g. pressing 'f' once or twice
doesn't result in the yellow rectangle appearing, but the third press
does.

-- 
Glynn Clements <glynn at gclements.plus.com>

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: gltest.c
URL: <http://lists.x.org/archives/xorg/attachments/20051213/0d17a5c0/attachment.c>


More information about the xorg mailing list