In my quest for algorithmic optimizations, I have stumbled onto what I
believe must be a bug. Please take a look at the client_state function (the
first function) in enable.c. You will find the following code:
if (*var == flag)
return;
If I am correct this should actually be:
if (*var == state)
return;
This bug is causing all vertices to be flushed even if a client state which
is already enabled is being enabled again. I have analyzed the Team Arena
Quake 3 Demo and find that it is constantly enabling GL_TEXTURE_COORD_ARRAY
and GL_COLOR_ARRAY, even when they are already enabled. This, coupled with
the above bug, may be caused some pretty bad performance penalties. I would
be interested in seeing some benchmarks from before and after.
-Raystonn
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel