From: Allen B. <ba...@lo...> - 2001-07-08 14:54:08
|
Hi, Attached is a short program which demonstrates a problem with display lists in the current CVS version of Mesa. It appears that if a triangle strip with exactly 216 vertices is compiled into a display list, an error occurs in the processing of the display list which prevents the execution of subsequent commands in the display list. From looking at the code, it's related to the size of the cassette data structure. In this case, the END element of a 216 vertex triangle strip goes into the first element of a separate cassette. It is only this case that appears to give trouble; if there are more or fewer than 216 elements, it works OK. Compile the attached program and run with: $ gcc -o try10 try10.c -lglut -lGL -lGLU -lm $ MESA_DEBUG=1 ./try10 MMX cpu detected. Testing OS support for SSE...yes. Test OS support for SEE unmasked exceptions... SIGFPE, yes. Test of OS support for SSE passed. SSE cpu detected. Brian Paul Mesa X11 1.2 Mesa 3.5 Mesa user error: GL_INVALID_OPERATION in begin/end Mesa user error: GL_INVALID_OPERATION in begin/end Mesa user error: GL_INVALID_OPERATION in begin/end $ gcc -DIMMEDIATE -o try10 try10.c -lglut -lGL -lGLU -lm $ MESA_DEBUG=1 ./try10 MMX cpu detected. Testing OS support for SSE...yes. Test OS support for SEE unmasked exceptions... SIGFPE, yes. Test of OS support for SSE passed. SSE cpu detected. Brian Paul Mesa X11 1.2 Mesa 3.5 $ In the first (error) case, one of the triangle strips just appears as a rectangle fading from cyan to yellow. In the second, immediate mode, case, both strips are correctly shown as parallel waves. If you adjust N_TRIANGLES in the program to be something other than 108, then both cases work. Thanks, Allen |