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

Reply via email to