mesa: check for z=0 in _mesa_Vertex3dv()

It's very rare that a GL app calls glVertex3dv(), but one in particular
calls it lot, always with Z = 0.  Check for that condition and convert
the call into glVertex2f.  This reduces VBO memory used and reduces
the number of times we have to switch between float[2] and float[3]
vertex formats in the svga driver.  This results in a small but
measurable performance improvement.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
Brian Paul 2016-01-05 13:03:04 -07:00
parent eec8d7e7e0
commit f04d7439a0
1 changed files with 4 additions and 1 deletions

View File

@ -629,7 +629,10 @@ _mesa_Vertex2sv( const GLshort *v )
void GLAPIENTRY
_mesa_Vertex3dv( const GLdouble *v )
{
VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
if (v[2] == 0.0)
VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
else
VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
}
void GLAPIENTRY