xserver: Branch 'xgl-0-0-1' - 2 commits

David Reveman davidr at kemper.freedesktop.org
Thu Oct 19 18:24:05 EEST 2006


 GL/glx/indirect_dispatch.c      |    6 
 GL/glx/indirect_dispatch_swap.c |    6 
 configure.ac                    |   10 
 hw/xgl/Makefile.am              |    2 
 hw/xgl/egl/xeglinit.c           |    6 
 hw/xgl/glx/xglx.c               |   13 
 hw/xgl/glx/xglxinit.c           |    6 
 hw/xgl/glxext/xglglxext.c       |  554 ++++++++++++++++-----------------------
 hw/xgl/glxext/xglglxlog.c       |  558 ++++++++++++++++------------------------
 hw/xgl/xgl.h                    |   12 
 hw/xgl/xglinit.c                |    6 
 hw/xgl/xglinput.c               |  177 ++++++++++++
 hw/xgl/xglparse.c               |   33 ++
 include/xgl-config.h.in         |    3 
 14 files changed, 738 insertions(+), 654 deletions(-)

New commits:
diff-tree b096b49ff5b43be96d815ecaad27afafb0af0461 (from 634eb2efc1dc294281673e2fea37f3296ca8017a)
Author: David Reveman <davidr at novell.com>
Date:   Wed Oct 18 13:47:30 2006 -0400

    Update for current version of Mesa.

diff --git a/GL/glx/indirect_dispatch.c b/GL/glx/indirect_dispatch.c
index cdd673f..8e22396 100644
--- a/GL/glx/indirect_dispatch.c
+++ b/GL/glx/indirect_dispatch.c
@@ -3690,7 +3690,7 @@ int __glXDisp_AreTexturesResidentEXT(__G
         GLboolean retval;
         GLboolean answerBuffer[200];
         GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
-        retval = CALL_AreTexturesResidentEXT( GET_DISPATCH(), (
+        retval = CALL_AreTexturesResident( GET_DISPATCH(), (
             n,
              (const GLuint *)(pc +  4),
             residences
@@ -3714,7 +3714,7 @@ int __glXDisp_GenTexturesEXT(__GLXclient
 
         GLuint answerBuffer[200];
         GLuint * textures = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
-        CALL_GenTexturesEXT( GET_DISPATCH(), (
+        CALL_GenTextures( GET_DISPATCH(), (
             n,
             textures
         ) );
@@ -3734,7 +3734,7 @@ int __glXDisp_IsTextureEXT(__GLXclientSt
     pc += __GLX_VENDPRIV_HDR_SIZE;
     if ( cx != NULL ) {
         GLboolean retval;
-        retval = CALL_IsTextureEXT( GET_DISPATCH(), (
+        retval = CALL_IsTexture( GET_DISPATCH(), (
             *(GLuint   *)(pc +  0)
         ) );
         __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
diff --git a/GL/glx/indirect_dispatch_swap.c b/GL/glx/indirect_dispatch_swap.c
index 6c8c4c8..ff80398 100644
--- a/GL/glx/indirect_dispatch_swap.c
+++ b/GL/glx/indirect_dispatch_swap.c
@@ -3828,7 +3828,7 @@ int __glXDispSwap_AreTexturesResidentEXT
         GLboolean retval;
         GLboolean answerBuffer[200];
         GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
-        retval = CALL_AreTexturesResidentEXT( GET_DISPATCH(), (
+        retval = CALL_AreTexturesResident( GET_DISPATCH(), (
             n,
              (const GLuint *)bswap_32_array( (uint32_t *) (pc +  4), 0 ),
             residences
@@ -3852,7 +3852,7 @@ int __glXDispSwap_GenTexturesEXT(__GLXcl
 
         GLuint answerBuffer[200];
         GLuint * textures = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
-        CALL_GenTexturesEXT( GET_DISPATCH(), (
+        CALL_GenTextures( GET_DISPATCH(), (
             n,
             textures
         ) );
@@ -3873,7 +3873,7 @@ int __glXDispSwap_IsTextureEXT(__GLXclie
     pc += __GLX_VENDPRIV_HDR_SIZE;
     if ( cx != NULL ) {
         GLboolean retval;
-        retval = CALL_IsTextureEXT( GET_DISPATCH(), (
+        retval = CALL_IsTexture( GET_DISPATCH(), (
              (GLuint  )bswap_CARD32 ( pc +  0 )
         ) );
         __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
diff --git a/hw/xgl/glxext/xglglxext.c b/hw/xgl/glxext/xglglxext.c
index d851b2a..c4f0274 100644
--- a/hw/xgl/glxext/xglglxext.c
+++ b/hw/xgl/glxext/xglglxext.c
@@ -3162,22 +3162,6 @@ xglNoOpMultiTexCoord4svARB (GLenum targe
 static void
 xglNoOpSampleCoverageARB (GLclampf value, GLboolean invert) {}
 
-/* GL_EXT_texture_object */
-static GLboolean
-xglNoOpAreTexturesResidentEXT (GLsizei n,
-			       const GLuint *textures,
-			       GLboolean *residences)
-{
-    return GL_FALSE;
-}
-static void
-xglNoOpGenTexturesEXT (GLsizei n, GLuint *textures) {}
-static GLboolean
-xglNoOpIsTextureEXT (GLuint texture)
-{
-    return GL_FALSE;
-}
-
 /* GL_SGIS_multisample */
 static void
 xglNoOpSampleMaskSGIS (GLclampf value, GLboolean invert) {}
@@ -4331,44 +4315,147 @@ static struct _glapi_table __glNativeRen
     xglNoOpMultiTexCoord4ivARB,
     0, /* glMultiTexCoord4sARB */
     xglNoOpMultiTexCoord4svARB,
+    0, /* glStencilFuncSeparate */
+    0, /* glStencilOpSeparate */
+    0, /* glStencilMaskSeparate */
     0, /* glLoadTransposeMatrixfARB */
     0, /* glLoadTransposeMatrixdARB */
     0, /* glMultTransposeMatrixfARB */
     0, /* glMultTransposeMatrixdARB */
     xglNoOpSampleCoverageARB,
+    0, /* glCompressedTexImage1DARB */
+    0, /* glCompressedTexImage2DARB */
+    0, /* glCompressedTexImage3DARB */
+    0, /* glCompressedTexSubImage1DARB */
+    0, /* glCompressedTexSubImage2DARB */
+    0, /* glCompressedTexSubImage3DARB */
+    0, /* glGetCompressedTexImageARB */
+    0, /* glDisableVertexAttribArrayARB */
+    0, /* glEnableVertexAttribArrayARB */
+    xglNoOpGetProgramEnvParameterdvARB,
+    xglNoOpGetProgramEnvParameterfvARB,
+    xglNoOpGetProgramLocalParameterdvARB,
+    xglNoOpGetProgramLocalParameterfvARB,
+    xglNoOpGetProgramStringARB,
+    xglNoOpGetProgramivARB,
+    xglNoOpGetVertexAttribdvARB,
+    xglNoOpGetVertexAttribfvARB,
+    xglNoOpGetVertexAttribivARB,
+    0, /* glProgramEnvParameter4dARB */
+    xglNoOpProgramEnvParameter4dvARB,
+    0, /* glProgramEnvParameter4fARB */
+    xglNoOpProgramEnvParameter4fvARB,
+    0, /* glProgramLocalParameter4dARB */
+    xglNoOpProgramLocalParameter4dvARB,
+    0, /* glProgramLocalParameter4fARB */
+    xglNoOpProgramLocalParameter4fvARB,
+    xglNoOpProgramStringARB,
+    0, /* glVertexAttrib1dARB */
+    xglNoOpVertexAttrib1dvARB,
+    0, /* glVertexAttrib1fARB */
+    xglNoOpVertexAttrib1fvARB,
+    0, /* glVertexAttrib1sARB */
+    xglNoOpVertexAttrib1svARB,
+    0, /* glVertexAttrib2dARB */
+    xglNoOpVertexAttrib2dvARB,
+    0, /* glVertexAttrib2fARB */
+    xglNoOpVertexAttrib2fvARB,
+    0, /* glVertexAttrib2sARB */
+    xglNoOpVertexAttrib2svARB,
+    0, /* glVertexAttrib3dARB */
+    xglNoOpVertexAttrib3dvARB,
+    0, /* glVertexAttrib3fARB */
+    xglNoOpVertexAttrib3fvARB,
+    0, /* glVertexAttrib3sARB */
+    xglNoOpVertexAttrib3svARB,
+    xglNoOpVertexAttrib4NbvARB,
+    xglNoOpVertexAttrib4NivARB,
+    xglNoOpVertexAttrib4NsvARB,
+    0, /* glVertexAttrib4NubARB */
+    xglNoOpVertexAttrib4NubvARB,
+    xglNoOpVertexAttrib4NuivARB,
+    xglNoOpVertexAttrib4NusvARB,
+    xglNoOpVertexAttrib4bvARB,
+    0, /* glVertexAttrib4dARB */
+    xglNoOpVertexAttrib4dvARB,
+    0, /* glVertexAttrib4fARB */
+    xglNoOpVertexAttrib4fvARB,
+    xglNoOpVertexAttrib4ivARB,
+    0, /* glVertexAttrib4sARB */
+    xglNoOpVertexAttrib4svARB,
+    xglNoOpVertexAttrib4ubvARB,
+    xglNoOpVertexAttrib4uivARB,
+    xglNoOpVertexAttrib4usvARB,
+    0, /* glVertexAttribPointerARB */
+    0, /* glBindBufferARB */
+    0, /* glBufferDataARB */
+    0, /* glBufferSubDataARB */
+    0, /* glDeleteBuffersARB */
+    0, /* glGenBuffersARB */
+    0, /* glGetBufferParameterivARB */
+    0, /* glGetBufferPointervARB */
+    0, /* glGetBufferSubDataARB */
+    0, /* glIsBufferARB */
+    0, /* glMapBufferARB */
+    0, /* glUnmapBufferARB */
+    0, /* glBeginQueryARB */
+    0, /* glDeleteQueriesARB */
+    0, /* glEndQueryARB */
+    0, /* glGenQueriesARB */
+    0, /* glGetQueryObjectivARB */
+    0, /* glGetQueryObjectuivARB */
+    0, /* glGetQueryivARB */
+    0, /* IsQueryARB */
+    0, /* glAttachObjectARB */
+    0, /* glCompileShaderARB */
+    0, /* CreateProgramObjectARB */
+    0, /* CreateShaderObjectARB */
+    0, /* glDeleteObjectARB */
+    0, /* glDetachObjectARB */
+    0, /* glGetActiveUniformARB */
+    0, /* glGetAttachedObjectsARB */
+    0, /* GetHandleARB */
+    0, /* glGetInfoLogARB */
+    0, /* glGetObjectParameterfvARB */
+    0, /* glGetObjectParameterivARB */
+    0, /* glGetShaderSourceARB */
+    0, /* GetUniformLocationARB */
+    0, /* glGetUniformfvARB */
+    0, /* glGetUniformivARB */
+    0, /* glLinkProgramARB */
+    0, /* glShaderSourceARB */
+    0, /* glUniform1fARB */
+    0, /* glUniform1fvARB */
+    0, /* glUniform1iARB */
+    0, /* glUniform1ivARB */
+    0, /* glUniform2fARB */
+    0, /* glUniform2fvARB */
+    0, /* glUniform2iARB */
+    0, /* glUniform2ivARB */
+    0, /* glUniform3fARB */
+    0, /* glUniform3fvARB */
+    0, /* glUniform3iARB */
+    0, /* glUniform3ivARB */
+    0, /* glUniform4fARB */
+    0, /* glUniform4fvARB */
+    0, /* glUniform4iARB */
+    0, /* glUniform4ivARB */
+    0, /* glUniformMatrix2fvARB */
+    0, /* glUniformMatrix3fvARB */
+    0, /* glUniformMatrix4fvARB */
+    0, /* glUseProgramObjectARB */
+    0, /* glValidateProgramARB */
+    0, /* glBindAttribLocationARB */
+    0, /* glGetActiveAttribARB */
+    0, /* GetAttribLocationARB */
     0, /* glDrawBuffersARB */
     0, /* glPolygonOffsetEXT */
-    0, /* glGetTexFilterFuncSGIS */
-    0, /* glTexFilterFuncSGIS */
-    0, /* glGetHistogramEXT */
-    0, /* glGetHistogramParameterfvEXT */
-    0, /* glGetHistogramParameterivEXT */
-    0, /* glGetMinmaxEXT */
-    0, /* glGetMinmaxParameterfvEXT */
-    0, /* glGetMinmaxParameterivEXT */
-    0, /* glGetConvolutionFilterEXT */
-    0, /* glGetConvolutionParameterfvEXT */
-    0, /* glGetConvolutionParameterivEXT */
-    0, /* glGetSeparableFilterEXT */
-    0, /* glGetColorTableSGI */
-    0, /* glGetColorTableParameterfvSGI */
-    0, /* glGetColorTableParameterivSGI */
-    0, /* glPixelTexGenSGIX */
-    0, /* glPixelTexGenParameteriSGIS */
-    0, /* glPixelTexGenParameterivSGIS */
+    0, /* glGetPixelTexGenParameterfvSGIS */
+    0, /* glGetPixelTexGenParameterivSGIS */
     0, /* glPixelTexGenParameterfSGIS */
     0, /* glPixelTexGenParameterfvSGIS */
-    0, /* glGetPixelTexGenParameterivSGIS */
-    0, /* glGetPixelTexGenParameterfvSGIS */
-    0, /* glTexImage4DSGIS */
-    0, /* glTexSubImage4DSGIS */
-    xglNoOpAreTexturesResidentEXT,
-    xglNoOpGenTexturesEXT,
-    xglNoOpIsTextureEXT,
-    0, /* glDetailTexFuncSGIS */
-    0, /* glGetDetailTexFuncSGIS */
-    0, /* glSharpenTexFuncSGIS */
-    0, /* glGetSharpenTexFuncSGIS */
+    0, /* glPixelTexGenParameteriSGIS */
+    0, /* glPixelTexGenParameterivSGIS */
     xglNoOpSampleMaskSGIS,
     xglNoOpSamplePatternSGIS,
     0, /* glColorPointerEXT */
@@ -4377,57 +4464,46 @@ static struct _glapi_table __glNativeRen
     0, /* glNormalPointerEXT */
     0, /* glTexCoordPointerEXT */
     0, /* glVertexPointerEXT */
-    0, /* glSpriteParameterfSGIX */
-    0, /* glSpriteParameterfvSGIX */
-    0, /* glSpriteParameteriSGIX */
-    0, /* glSpriteParameterivSGIX */
     xglNoOpPointParameterfEXT,
     xglNoOpPointParameterfvEXT,
-    0, /* glGetInstrumentsSGIX */
-    0, /* glInstrumentsBufferSGIX */
-    0, /* glPollInstrumentsSGIX */
-    0, /* glReadInstrumentsSGIX */
-    0, /* glStartInstrumentsSGIX */
-    0, /* glStopInstrumentsSGIX */
-    0, /* glFrameZoomSGIX */
-    0, /* glTagSampleBufferSGIX */
-    0, /* glReferencePlaneSGIX */
-    0, /* glFlushRasterSGIX */
-    0, /* glGetListParameterfvSGIX */
-    0, /* glGetListParameterivSGIX */
-    0, /* glListParameterfSGIX */
-    0, /* glListParameterfvSGIX */
-    0, /* glListParameteriSGIX */
-    0, /* glListParameterivSGIX */
-    0, /* glFragmentColorMaterialSGIX */
-    0, /* glFragmentLightfSGIX */
-    0, /* glFragmentLightfvSGIX */
-    0, /* glFragmentLightiSGIX */
-    0, /* glFragmentLightivSGIX */
-    0, /* glFragmentLightModelfSGIX */
-    0, /* glFragmentLightModelfvSGIX */
-    0, /* glFragmentLightModeliSGIX */
-    0, /* glFragmentLightModelivSGIX */
-    0, /* glFragmentMaterialfSGIX */
-    0, /* glFragmentMaterialfvSGIX */
-    0, /* glFragmentMaterialiSGIX */
-    0, /* glFragmentMaterialivSGIX */
-    0, /* glGetFragmentLightfvSGIX */
-    0, /* glGetFragmentLightivSGIX */
-    0, /* glGetFragmentMaterialfvSGIX */
-    0, /* glGetFragmentMaterialivSGIX */
-    0, /* glLightEnviSGIX */
-    0, /* glVertexWeightfEXT */
-    0, /* glVertexWeightfvEXT */
-    0, /* glVertexWeightPointerEXT */
+    0, /* glLockArraysEXT */
+    0, /* glUnlockArraysEXT */
+    0, /* glCullParameterdvEXT */
+    0, /* glCullParameterfvEXT */
+    0, /* glSecondaryColor3bEXT */
+    xglNoOpSecondaryColor3bvEXT,
+    0, /* glSecondaryColor3dEXT */
+    xglNoOpSecondaryColor3dvEXT,
+    0, /* glSecondaryColor3fEXT */
+    xglNoOpSecondaryColor3fvEXT,
+    0, /* glSecondaryColor3iEXT */
+    xglNoOpSecondaryColor3ivEXT,
+    0, /* glSecondaryColor3sEXT */
+    xglNoOpSecondaryColor3svEXT,
+    0, /* glSecondaryColor3ubEXT */
+    xglNoOpSecondaryColor3ubvEXT,
+    0, /* glSecondaryColor3uiEXT */
+    xglNoOpSecondaryColor3uivEXT,
+    0, /* glSecondaryColor3usEXT */
+    xglNoOpSecondaryColor3usvEXT,
+    xglNoOpSecondaryColorPointerEXT,
+    0, /* glMultiDrawArraysEXT */
+    0, /* glMultiDrawElementsEXT */
+    xglNoOpFogCoordPointerEXT,
+    0, /* glFogCoorddEXT */
+    xglNoOpFogCoorddvEXT,
+    0, /* glFogCoordfEXT */
+    xglNoOpFogCoordfvEXT,
+    0, /* glPixelTexGenSGIX */
+    xglNoOpBlendFuncSeparateEXT,
     0, /* glFlushVertexArrayRangeNV */
     0, /* glVertexArrayRangeNV */
-    0, /* glCombinerParameterfvNV */
-    0, /* glCombinerParameterfNV */
-    0, /* glCombinerParameterivNV */
-    0, /* glCombinerParameteriNV */
     0, /* glCombinerInputNV */
     0, /* glCombinerOutputNV */
+    0, /* glCombinerParameterfNV */
+    0, /* glCombinerParameterfvNV */
+    0, /* glCombinerParameteriNV */
+    0, /* glCombinerParameterivNV */
     0, /* glFinalCombinerInputNV */
     0, /* glGetCombinerInputParameterfvNV */
     0, /* glGetCombinerInputParameterivNV */
@@ -4460,47 +4536,15 @@ static struct _glapi_table __glNativeRen
     0, /* glWindowPos4ivMESA */
     0, /* glWindowPos4sMESA */
     0, /* glWindowPos4svMESA */
-    xglNoOpBlendFuncSeparateEXT,
-    0, /* glIndexMaterialEXT */
-    0, /* glIndexFuncEXT */
-    0, /* glLockArraysEXT */
-    0, /* glUnlockArraysEXT */
-    0, /* glCullParameterdvEXT */
-    0, /* glCullParameterfvEXT */
-    0, /* glHintPGI */
-    0, /* glFogCoordfEXT */
-    xglNoOpFogCoordfvEXT,
-    0, /* glFogCoorddEXT */
-    xglNoOpFogCoorddvEXT,
-    xglNoOpFogCoordPointerEXT,
-    0, /* glGetColorTableEXT */
-    0, /* glGetColorTableParameterivEXT */
-    0, /* glGetColorTableParameterfvEXT */
-    0, /* glTbufferMask3DFX */
-    0, /* glCompressedTexImage3DARB */
-    0, /* glCompressedTexImage2DARB */
-    0, /* glCompressedTexImage1DARB */
-    0, /* glCompressedTexSubImage3DARB */
-    0, /* glCompressedTexSubImage2DARB */
-    0, /* glCompressedTexSubImage1DARB */
-    0, /* glGetCompressedTexImageARB */
-    0, /* glSecondaryColor3bEXT */
-    xglNoOpSecondaryColor3bvEXT,
-    0, /* glSecondaryColor3dEXT */
-    xglNoOpSecondaryColor3dvEXT,
-    0, /* glSecondaryColor3fEXT */
-    xglNoOpSecondaryColor3fvEXT,
-    0, /* glSecondaryColor3iEXT */
-    xglNoOpSecondaryColor3ivEXT,
-    0, /* glSecondaryColor3sEXT */
-    xglNoOpSecondaryColor3svEXT,
-    0, /* glSecondaryColor3ubEXT */
-    xglNoOpSecondaryColor3ubvEXT,
-    0, /* glSecondaryColor3uiEXT */
-    xglNoOpSecondaryColor3uivEXT,
-    0, /* glSecondaryColor3usEXT */
-    xglNoOpSecondaryColor3usvEXT,
-    xglNoOpSecondaryColorPointerEXT,
+    0, /* glMultiModeDrawArraysIBM */
+    0, /* glMultiModeDrawElementsIBM */
+    0, /* glDeleteFencesNV */
+    0, /* glFinishFenceNV */
+    0, /* glGenFencesNV */
+    0, /* glGetFenceivNV */
+    0, /* glIsFenceNV */
+    0, /* glSetFenceNV */
+    0, /* glTestFenceNV */
     0, /* glAreProgramsResidentNV */
     xglNoOpBindProgramARB,
     xglNoOpDeleteProgramsARB,
@@ -4508,13 +4552,13 @@ static struct _glapi_table __glNativeRen
     xglNoOpGenProgramsARB,
     0, /* glGetProgramParameterdvNV */
     0, /* glGetProgramParameterfvNV */
-    xglNoOpGetProgramivARB,
     0, /* glGetProgramStringNV */
+    0, /* glGetProgramivNV */
     0, /* glGetTrackMatrixivNV */
-    xglNoOpGetVertexAttribdvARB,
-    xglNoOpGetVertexAttribfvARB,
-    xglNoOpGetVertexAttribivARB,
     0, /* glGetVertexAttribPointervNV */
+    0, /* glGetVertexAttribdvNV */
+    0, /* glGetVertexAttribfvNV */
+    0, /* glGetVertexAttribivNV */
     xglNoOpIsProgramARB,
     0, /* glLoadProgramNV */
     0, /* glProgramParameter4dNV */
@@ -4525,160 +4569,6 @@ static struct _glapi_table __glNativeRen
     0, /* glProgramParameters4fvNV */
     0, /* glRequestResidentProgramsNV */
     0, /* glTrackMatrixNV */
-    0, /* glVertexAttribPointerNV */
-    0, /* glVertexAttrib1dARB */
-    xglNoOpVertexAttrib1dvARB,
-    0, /* glVertexAttrib1fARB */
-    xglNoOpVertexAttrib1fvARB,
-    0, /* glVertexAttrib1sARB */
-    xglNoOpVertexAttrib1svARB,
-    0, /* glVertexAttrib2dARB */
-    xglNoOpVertexAttrib2dvARB,
-    0, /* glVertexAttrib2fARB */
-    xglNoOpVertexAttrib2fvARB,
-    0, /* glVertexAttrib2sARB */
-    xglNoOpVertexAttrib2svARB,
-    0, /* glVertexAttrib3dARB */
-    xglNoOpVertexAttrib3dvARB,
-    0, /* glVertexAttrib3fARB */
-    xglNoOpVertexAttrib3fvARB,
-    0, /* glVertexAttrib3sARB */
-    xglNoOpVertexAttrib3svARB,
-    0, /* glVertexAttrib4dARB */
-    xglNoOpVertexAttrib4dvARB,
-    0, /* glVertexAttrib4fARB */
-    xglNoOpVertexAttrib4fvARB,
-    0, /* glVertexAttrib4sARB */
-    xglNoOpVertexAttrib4svARB,
-    0, /* glVertexAttrib4NubARB */
-    xglNoOpVertexAttrib4NubvARB,
-    0, /* glVertexAttribs1dvNV */
-    0, /* glVertexAttribs1fvNV */
-    0, /* glVertexAttribs1svNV */
-    0, /* glVertexAttribs2dvNV */
-    0, /* glVertexAttribs2fvNV */
-    0, /* glVertexAttribs2svNV */
-    0, /* glVertexAttribs3dvNV */
-    0, /* glVertexAttribs3fvNV */
-    0, /* glVertexAttribs3svNV */
-    0, /* glVertexAttribs4dvNV */
-    0, /* glVertexAttribs4fvNV */
-    0, /* glVertexAttribs4svNV */
-    0, /* glVertexAttribs4ubvNV */
-    xglNoOpPointParameteriNV,
-    xglNoOpPointParameterivNV,
-    0, /* glMultiDrawArraysEXT */
-    0, /* glMultiDrawElementsEXT */
-    xglNoOpActiveStencilFaceEXT,
-    0, /* glDeleteFencesNV */
-    0, /* glGenFencesNV */
-    0, /* glIsFenceNV */
-    0, /* glTestFenceNV */
-    0, /* glGetFenceivNV */
-    0, /* glFinishFenceNV */
-    0, /* glSetFenceNV */
-    xglNoOpVertexAttrib4bvARB,
-    xglNoOpVertexAttrib4ivARB,
-    xglNoOpVertexAttrib4ubvARB,
-    xglNoOpVertexAttrib4usvARB,
-    xglNoOpVertexAttrib4uivARB,
-    xglNoOpVertexAttrib4NbvARB,
-    xglNoOpVertexAttrib4NsvARB,
-    xglNoOpVertexAttrib4NivARB,
-    xglNoOpVertexAttrib4NusvARB,
-    xglNoOpVertexAttrib4NuivARB,
-    0, /* glVertexAttribPointerARB */
-    0, /* glEnableVertexAttribArrayARB */
-    0, /* glDisableVertexAttribArrayARB */
-    xglNoOpProgramStringARB,
-    0, /* glProgramEnvParameter4dARB */
-    xglNoOpProgramEnvParameter4dvARB,
-    0, /* glProgramEnvParameter4fARB */
-    xglNoOpProgramEnvParameter4fvARB,
-    0, /* glProgramLocalParameter4dARB */
-    xglNoOpProgramLocalParameter4dvARB,
-    0, /* glProgramLocalParameter4fARB */
-    xglNoOpProgramLocalParameter4fvARB,
-    xglNoOpGetProgramEnvParameterdvARB,
-    xglNoOpGetProgramEnvParameterfvARB,
-    xglNoOpGetProgramLocalParameterdvARB,
-    xglNoOpGetProgramLocalParameterfvARB,
-    xglNoOpGetProgramivARB,
-    xglNoOpGetProgramStringARB,
-    0, /* glProgramNamedParameter4fNV */
-    0, /* glProgramNamedParameter4dNV */
-    0, /* glProgramNamedParameter4fvNV */
-    0, /* glProgramNamedParameter4dvNV */
-    0, /* glGetProgramNamedParameterfvNV */
-    0, /* glGetProgramNamedParameterdvNV */
-    0, /* glBindBufferARB */
-    0, /* glBufferDataARB */
-    0, /* glBufferSubDataARB */
-    0, /* glDeleteBuffersARB */
-    0, /* glGenBuffersARB */
-    0, /* glGetBufferParameterivARB */
-    0, /* glGetBufferPointervARB */
-    0, /* glGetBufferSubDataARB */
-    0, /* glIsBufferARB */
-    0, /* glMapBufferARB */
-    0, /* glUnmapBufferARB */
-    0, /* glDepthBoundsEXT */
-    0, /* glGenQueriesARB */
-    0, /* glDeleteQueriesARB */
-    0, /* glIsQueryARB */
-    0, /* glBeginQueryARB */
-    0, /* glEndQueryARB */
-    0, /* glGetQueryivARB */
-    0, /* glGetQueryObjectivARB */
-    0, /* glGetQueryObjectuivARB */
-    0, /* glMultiModeDrawArraysIBM */
-    0, /* glMultiModeDrawElementsIBM */
-    0, /* glBlendEquationSeparateEXT */
-    0, /* glDeleteObjectARB */
-    0, /* glGetHandleARB */
-    0, /* glDetachObjectARB */
-    0, /* glCreateShaderObjectARB */
-    0, /* glShaderSourceARB */
-    0, /* glCompileShaderARB */
-    0, /* glCreateProgramObjectARB */
-    0, /* glAttachObjectARB */
-    0, /* glLinkProgramARB */
-    0, /* glUseProgramObjectARB */
-    0, /* glValidateProgramARB */
-    0, /* glUniform1fARB */
-    0, /* glUniform2fARB */
-    0, /* glUniform3fARB */
-    0, /* glUniform4fARB */
-    0, /* glUniform1iARB */
-    0, /* glUniform2iARB */
-    0, /* glUniform3iARB */
-    0, /* glUniform4iARB */
-    0, /* glUniform1fvARB */
-    0, /* glUniform2fvARB */
-    0, /* glUniform3fvARB */
-    0, /* glUniform4fvARB */
-    0, /* glUniform1ivARB */
-    0, /* glUniform2ivARB */
-    0, /* glUniform3ivARB */
-    0, /* glUniform4ivARB */
-    0, /* glUniformMatrix2fvARB */
-    0, /* glUniformMatrix3fvARB */
-    0, /* glUniformMatrix4fvARB */
-    0, /* glGetObjectParameterfvARB */
-    0, /* glGetObjectParameterivARB */
-    0, /* glGetInfoLogARB */
-    0, /* glGetAttachedObjectsARB */
-    0, /* glGetUniformLocationARB */
-    0, /* glGetActiveUniformARB */
-    0, /* glGetUniformfvARB */
-    0, /* glGetUniformivARB */
-    0, /* glGetShaderSourceARB */
-    0, /* glBindAttribLocationARB */
-    0, /* glGetActiveAttribARB */
-    0, /* glGetAttribLocationARB */
-    0, /* glGetVertexAttribdvNV */
-    0, /* glGetVertexAttribfvNV */
-    0, /* glGetVertexAttribivNV */
     0, /* glVertexAttrib1dNV */
     0, /* glVertexAttrib1dvNV */
     0, /* glVertexAttrib1fNV */
@@ -4705,43 +4595,71 @@ static struct _glapi_table __glNativeRen
     0, /* glVertexAttrib4svNV */
     0, /* glVertexAttrib4ubNV */
     0, /* glVertexAttrib4ubvNV */
-    0, /* glGenFragmentShadersATI */
+    0, /* glVertexAttribPointerNV */
+    0, /* glVertexAttribs1dvNV */
+    0, /* glVertexAttribs1fvNV */
+    0, /* glVertexAttribs1svNV */
+    0, /* glVertexAttribs2dvNV */
+    0, /* glVertexAttribs2fvNV */
+    0, /* glVertexAttribs2svNV */
+    0, /* glVertexAttribs3dvNV */
+    0, /* glVertexAttribs3fvNV */
+    0, /* glVertexAttribs3svNV */
+    0, /* glVertexAttribs4dvNV */
+    0, /* glVertexAttribs4fvNV */
+    0, /* glVertexAttribs4svNV */
+    0, /* glVertexAttribs4ubvNV */
+    0, /* glAlphaFragmentOp1ATI */
+    0, /* glAlphaFragmentOp2ATI */
+    0, /* glAlphaFragmentOp3ATI */
+    0, /* glBeginFragmentShaderATI */
     0, /* glBindFragmentShaderATI */
+    0, /* glColorFragmentOp1ATI */
+    0, /* glColorFragmentOp2ATI */
+    0, /* glColorFragmentOp3ATI */
     0, /* glDeleteFragmentShaderATI */
-    0, /* glBeginFragmentShaderATI */
     0, /* glEndFragmentShaderATI */
+    0, /* glGenFragmentShadersATI */
     0, /* glPassTexCoordATI */
     0, /* glSampleMapATI */
-    0, /* glColorFragmentOp1ATI */
-    0, /* glColorFragmentOp2ATI */
-    0, /* glColorFragmentOp3ATI */
-    0, /* glAlphaFragmentOp1ATI */
-    0, /* glAlphaFragmentOp2ATI */
-    0, /* glAlphaFragmentOp3ATI */
     0, /* glSetFragmentShaderConstantATI */
-    xglNoOpIsRenderbufferEXT,
-    xglNoOpBindRenderbufferEXT,
-    xglNoOpDeleteRenderbuffersEXT,
-    xglNoOpGenRenderbuffersEXT,
-    xglNoOpRenderbufferStorageEXT,
-    xglNoOpGetRenderbufferParameterivEXT,
-    xglNoOpIsFramebufferEXT,
+    xglNoOpPointParameteriNV,
+    xglNoOpPointParameterivNV,
+    xglNoOpActiveStencilFaceEXT,
+    0, /* glBindVertexArrayAPPLE */
+    0, /* glDeleteVertexArraysAPPLE */
+    0, /* glGenVertexArraysAPPLE */
+    0, /* glIsVertexArrayAPPLE */
+    0, /* glGetProgramNamedParameterdvNV */
+    0, /* glGetProgramNamedParameterfvNV */
+    0, /* glProgramNamedParameter4dNV */
+    0, /* glProgramNamedParameter4fNV */
+    0, /* glProgramNamedParameter4dvNV */
+    0, /* glProgramNamedParameter4fvNV */
+    0, /* glDepthBoundsEXT */
+    0, /* glBlendEquationSeparateEXT */
     xglNoOpBindFramebufferEXT,
-    xglNoOpDeleteFramebuffersEXT,
-    xglNoOpGenFramebuffersEXT,
+    xglNoOpBindRenderbufferEXT,
     xglNoOpCheckFramebufferStatusEXT,
+    xglNoOpDeleteFramebuffersEXT,
+    xglNoOpDeleteRenderbuffersEXT,
+    xglNoOpFramebufferRenderbufferEXT,
     xglNoOpFramebufferTexture1DEXT,
     xglNoOpFramebufferTexture2DEXT,
     xglNoOpFramebufferTexture3DEXT,
-    xglNoOpFramebufferRenderbufferEXT,
-    xglNoOpGetFramebufferAttachmentParameterivEXT,
+    xglNoOpGenFramebuffersEXT,
+    xglNoOpGenRenderbuffersEXT,
     xglNoOpGenerateMipmapEXT,
-    0, /* glStencilFuncSeparate */
-    0, /* glStencilOpSeparate */
-    0, /* glStencilMaskSeparate */
-    0, /* GetQueryObjecti64vEXT */
-    0, /* GetQueryObjectui64vEXT */
-    0  /* BlitFramebufferEXT */
+    xglNoOpGetFramebufferAttachmentParameterivEXT,
+    xglNoOpGetRenderbufferParameterivEXT,
+    xglNoOpIsFramebufferEXT,
+    xglNoOpIsRenderbufferEXT,
+    xglNoOpRenderbufferStorageEXT,
+    0, /* glBlitFramebufferEXT */
+    0, /* glProgramEnvParameters4fvEXT */
+    0, /* glProgramLocalParameters4fvEXT */
+    0, /* glGetQueryObjecti64vEXT */
+    0  /* glGetQueryObjectui64vEXT */
 };
 
 static void
@@ -4843,14 +4761,6 @@ xglInitExtensions (xglGLContextPtr pCont
 					    "glSampleCoverageARB");
     }
 
-    if (strstr (extensions, "GL_EXT_texture_object"))
-    {
-	pContext->glRenderTable.AreTexturesResidentEXT =
-	    xglAreTexturesResident;
-	pContext->glRenderTable.GenTexturesEXT = xglGenTextures;
-	pContext->glRenderTable.IsTextureEXT = xglIsTexture;
-    }
-
     if (strstr (extensions, "GL_SGIS_multisample"))
     {
 	pContext->glRenderTable.SampleMaskSGIS =
diff --git a/hw/xgl/glxext/xglglxlog.c b/hw/xgl/glxext/xglglxlog.c
index 9888afa..d0a6ba6 100644
--- a/hw/xgl/glxext/xglglxlog.c
+++ b/hw/xgl/glxext/xglglxlog.c
@@ -3225,34 +3225,6 @@ logSampleCoverageARB (GLclampf  value,
 }
 
 
-/* GL_EXT_texture_object */
-
-static GLboolean
-logAreTexturesResidentEXT (GLsizei	n,
-			   const GLuint *textures,
-			   GLboolean	*residences)
-{
-    fprintf (logFp, "glAreTexturesResidentEXT (%d, %p, %p)\n",
-	     n, textures, residences);
-    return (*nativeRenderTable->AreTexturesResidentEXT) (n, textures,
-							 residences);
-}
-static void
-logGenTexturesEXT (GLsizei n,
-		   GLuint  *textures)
-{
-    fprintf (logFp, "glGenTexturesEXT (%d, %p)\n", n, textures);
-    (*nativeRenderTable->GenTexturesEXT) (n, textures);
-}
-
-static GLboolean
-logIsTextureEXT (GLuint texture)
-{
-    fprintf (logFp, "glIsTextureEXT (%d)\n", texture);
-    return (*nativeRenderTable->IsTextureEXT) (texture);
-}
-
-
 /* GL_SGIS_multisample */
 
 static void
@@ -4407,44 +4379,147 @@ static struct _glapi_table __logRenderTa
     logMultiTexCoord4ivARB,
     0, /* glMultiTexCoord4sARB */
     logMultiTexCoord4svARB,
+    0, /* glStencilFuncSeparate */
+    0, /* glStencilOpSeparate */
+    0, /* glStencilMaskSeparate */
     0, /* glLoadTransposeMatrixfARB */
     0, /* glLoadTransposeMatrixdARB */
     0, /* glMultTransposeMatrixfARB */
     0, /* glMultTransposeMatrixdARB */
     logSampleCoverageARB,
+    0, /* glCompressedTexImage1DARB */
+    0, /* glCompressedTexImage2DARB */
+    0, /* glCompressedTexImage3DARB */
+    0, /* glCompressedTexSubImage1DARB */
+    0, /* glCompressedTexSubImage2DARB */
+    0, /* glCompressedTexSubImage3DARB */
+    0, /* glGetCompressedTexImageARB */
+    0, /* glDisableVertexAttribArrayARB */
+    0, /* glEnableVertexAttribArrayARB */
+    logGetProgramEnvParameterdvARB,
+    logGetProgramEnvParameterfvARB,
+    logGetProgramLocalParameterdvARB,
+    logGetProgramLocalParameterfvARB,
+    logGetProgramStringARB,
+    logGetProgramivARB,
+    logGetVertexAttribdvARB,
+    logGetVertexAttribfvARB,
+    logGetVertexAttribivARB,
+    0, /* glProgramEnvParameter4dARB */
+    logProgramEnvParameter4dvARB,
+    0, /* glProgramEnvParameter4fARB */
+    logProgramEnvParameter4fvARB,
+    0, /* glProgramLocalParameter4dARB */
+    logProgramLocalParameter4dvARB,
+    0, /* glProgramLocalParameter4fARB */
+    logProgramLocalParameter4fvARB,
+    logProgramStringARB,
+    0, /* glVertexAttrib1dARB */
+    logVertexAttrib1dvARB,
+    0, /* glVertexAttrib1fARB */
+    logVertexAttrib1fvARB,
+    0, /* glVertexAttrib1sARB */
+    logVertexAttrib1svARB,
+    0, /* glVertexAttrib2dARB */
+    logVertexAttrib2dvARB,
+    0, /* glVertexAttrib2fARB */
+    logVertexAttrib2fvARB,
+    0, /* glVertexAttrib2sARB */
+    logVertexAttrib2svARB,
+    0, /* glVertexAttrib3dARB */
+    logVertexAttrib3dvARB,
+    0, /* glVertexAttrib3fARB */
+    logVertexAttrib3fvARB,
+    0, /* glVertexAttrib3sARB */
+    logVertexAttrib3svARB,
+    logVertexAttrib4NbvARB,
+    logVertexAttrib4NivARB,
+    logVertexAttrib4NsvARB,
+    0, /* glVertexAttrib4NubARB */
+    logVertexAttrib4NubvARB,
+    logVertexAttrib4NuivARB,
+    logVertexAttrib4NusvARB,
+    logVertexAttrib4bvARB,
+    0, /* glVertexAttrib4dARB */
+    logVertexAttrib4dvARB,
+    0, /* glVertexAttrib4fARB */
+    logVertexAttrib4fvARB,
+    logVertexAttrib4ivARB,
+    0, /* glVertexAttrib4sARB */
+    logVertexAttrib4svARB,
+    logVertexAttrib4ubvARB,
+    logVertexAttrib4uivARB,
+    logVertexAttrib4usvARB,
+    0, /* glVertexAttribPointerARB */
+    0, /* glBindBufferARB */
+    0, /* glBufferDataARB */
+    0, /* glBufferSubDataARB */
+    0, /* glDeleteBuffersARB */
+    0, /* glGenBuffersARB */
+    0, /* glGetBufferParameterivARB */
+    0, /* glGetBufferPointervARB */
+    0, /* glGetBufferSubDataARB */
+    0, /* glIsBufferARB */
+    0, /* glMapBufferARB */
+    0, /* glUnmapBufferARB */
+    0, /* glBeginQueryARB */
+    0, /* glDeleteQueriesARB */
+    0, /* glEndQueryARB */
+    0, /* glGenQueriesARB */
+    0, /* glGetQueryObjectivARB */
+    0, /* glGetQueryObjectuivARB */
+    0, /* glGetQueryivARB */
+    0, /* IsQueryARB */
+    0, /* glAttachObjectARB */
+    0, /* glCompileShaderARB */
+    0, /* CreateProgramObjectARB */
+    0, /* CreateShaderObjectARB */
+    0, /* glDeleteObjectARB */
+    0, /* glDetachObjectARB */
+    0, /* glGetActiveUniformARB */
+    0, /* glGetAttachedObjectsARB */
+    0, /* GetHandleARB */
+    0, /* glGetInfoLogARB */
+    0, /* glGetObjectParameterfvARB */
+    0, /* glGetObjectParameterivARB */
+    0, /* glGetShaderSourceARB */
+    0, /* GetUniformLocationARB */
+    0, /* glGetUniformfvARB */
+    0, /* glGetUniformivARB */
+    0, /* glLinkProgramARB */
+    0, /* glShaderSourceARB */
+    0, /* glUniform1fARB */
+    0, /* glUniform1fvARB */
+    0, /* glUniform1iARB */
+    0, /* glUniform1ivARB */
+    0, /* glUniform2fARB */
+    0, /* glUniform2fvARB */
+    0, /* glUniform2iARB */
+    0, /* glUniform2ivARB */
+    0, /* glUniform3fARB */
+    0, /* glUniform3fvARB */
+    0, /* glUniform3iARB */
+    0, /* glUniform3ivARB */
+    0, /* glUniform4fARB */
+    0, /* glUniform4fvARB */
+    0, /* glUniform4iARB */
+    0, /* glUniform4ivARB */
+    0, /* glUniformMatrix2fvARB */
+    0, /* glUniformMatrix3fvARB */
+    0, /* glUniformMatrix4fvARB */
+    0, /* glUseProgramObjectARB */
+    0, /* glValidateProgramARB */
+    0, /* glBindAttribLocationARB */
+    0, /* glGetActiveAttribARB */
+    0, /* GetAttribLocationARB */
     0, /* glDrawBuffersARB */
     0, /* glPolygonOffsetEXT */
-    0, /* glGetTexFilterFuncSGIS */
-    0, /* glTexFilterFuncSGIS */
-    0, /* glGetHistogramEXT */
-    0, /* glGetHistogramParameterfvEXT */
-    0, /* glGetHistogramParameterivEXT */
-    0, /* glGetMinmaxEXT */
-    0, /* glGetMinmaxParameterfvEXT */
-    0, /* glGetMinmaxParameterivEXT */
-    0, /* glGetConvolutionFilterEXT */
-    0, /* glGetConvolutionParameterfvEXT */
-    0, /* glGetConvolutionParameterivEXT */
-    0, /* glGetSeparableFilterEXT */
-    0, /* glGetColorTableSGI */
-    0, /* glGetColorTableParameterfvSGI */
-    0, /* glGetColorTableParameterivSGI */
-    0, /* glPixelTexGenSGIX */
-    0, /* glPixelTexGenParameteriSGIS */
-    0, /* glPixelTexGenParameterivSGIS */
+    0, /* glGetPixelTexGenParameterfvSGIS */
+    0, /* glGetPixelTexGenParameterivSGIS */
     0, /* glPixelTexGenParameterfSGIS */
     0, /* glPixelTexGenParameterfvSGIS */
-    0, /* glGetPixelTexGenParameterivSGIS */
-    0, /* glGetPixelTexGenParameterfvSGIS */
-    0, /* glTexImage4DSGIS */
-    0, /* glTexSubImage4DSGIS */
-    logAreTexturesResidentEXT,
-    logGenTexturesEXT,
-    logIsTextureEXT,
-    0, /* glDetailTexFuncSGIS */
-    0, /* glGetDetailTexFuncSGIS */
-    0, /* glSharpenTexFuncSGIS */
-    0, /* glGetSharpenTexFuncSGIS */
+    0, /* glPixelTexGenParameteriSGIS */
+    0, /* glPixelTexGenParameterivSGIS */
     logSampleMaskSGIS,
     logSamplePatternSGIS,
     0, /* glColorPointerEXT */
@@ -4453,57 +4528,46 @@ static struct _glapi_table __logRenderTa
     0, /* glNormalPointerEXT */
     0, /* glTexCoordPointerEXT */
     0, /* glVertexPointerEXT */
-    0, /* glSpriteParameterfSGIX */
-    0, /* glSpriteParameterfvSGIX */
-    0, /* glSpriteParameteriSGIX */
-    0, /* glSpriteParameterivSGIX */
     logPointParameterfEXT,
     logPointParameterfvEXT,
-    0, /* glGetInstrumentsSGIX */
-    0, /* glInstrumentsBufferSGIX */
-    0, /* glPollInstrumentsSGIX */
-    0, /* glReadInstrumentsSGIX */
-    0, /* glStartInstrumentsSGIX */
-    0, /* glStopInstrumentsSGIX */
-    0, /* glFrameZoomSGIX */
-    0, /* glTagSampleBufferSGIX */
-    0, /* glReferencePlaneSGIX */
-    0, /* glFlushRasterSGIX */
-    0, /* glGetListParameterfvSGIX */
-    0, /* glGetListParameterivSGIX */
-    0, /* glListParameterfSGIX */
-    0, /* glListParameterfvSGIX */
-    0, /* glListParameteriSGIX */
-    0, /* glListParameterivSGIX */
-    0, /* glFragmentColorMaterialSGIX */
-    0, /* glFragmentLightfSGIX */
-    0, /* glFragmentLightfvSGIX */
-    0, /* glFragmentLightiSGIX */
-    0, /* glFragmentLightivSGIX */
-    0, /* glFragmentLightModelfSGIX */
-    0, /* glFragmentLightModelfvSGIX */
-    0, /* glFragmentLightModeliSGIX */
-    0, /* glFragmentLightModelivSGIX */
-    0, /* glFragmentMaterialfSGIX */
-    0, /* glFragmentMaterialfvSGIX */
-    0, /* glFragmentMaterialiSGIX */
-    0, /* glFragmentMaterialivSGIX */
-    0, /* glGetFragmentLightfvSGIX */
-    0, /* glGetFragmentLightivSGIX */
-    0, /* glGetFragmentMaterialfvSGIX */
-    0, /* glGetFragmentMaterialivSGIX */
-    0, /* glLightEnviSGIX */
-    0, /* glVertexWeightfEXT */
-    0, /* glVertexWeightfvEXT */
-    0, /* glVertexWeightPointerEXT */
+    0, /* glLockArraysEXT */
+    0, /* glUnlockArraysEXT */
+    0, /* glCullParameterdvEXT */
+    0, /* glCullParameterfvEXT */
+    0, /* glSecondaryColor3bEXT */
+    logSecondaryColor3bvEXT,
+    0, /* glSecondaryColor3dEXT */
+    logSecondaryColor3dvEXT,
+    0, /* glSecondaryColor3fEXT */
+    logSecondaryColor3fvEXT,
+    0, /* glSecondaryColor3iEXT */
+    logSecondaryColor3ivEXT,
+    0, /* glSecondaryColor3sEXT */
+    logSecondaryColor3svEXT,
+    0, /* glSecondaryColor3ubEXT */
+    logSecondaryColor3ubvEXT,
+    0, /* glSecondaryColor3uiEXT */
+    logSecondaryColor3uivEXT,
+    0, /* glSecondaryColor3usEXT */
+    logSecondaryColor3usvEXT,
+    logSecondaryColorPointerEXT,
+    0, /* glMultiDrawArraysEXT */
+    0, /* glMultiDrawElementsEXT */
+    logFogCoordPointerEXT,
+    0, /* glFogCoorddEXT */
+    logFogCoorddvEXT,
+    0, /* glFogCoordfEXT */
+    logFogCoordfvEXT,
+    0, /* glPixelTexGenSGIX */
+    logBlendFuncSeparateEXT,
     0, /* glFlushVertexArrayRangeNV */
     0, /* glVertexArrayRangeNV */
-    0, /* glCombinerParameterfvNV */
-    0, /* glCombinerParameterfNV */
-    0, /* glCombinerParameterivNV */
-    0, /* glCombinerParameteriNV */
     0, /* glCombinerInputNV */
     0, /* glCombinerOutputNV */
+    0, /* glCombinerParameterfNV */
+    0, /* glCombinerParameterfvNV */
+    0, /* glCombinerParameteriNV */
+    0, /* glCombinerParameterivNV */
     0, /* glFinalCombinerInputNV */
     0, /* glGetCombinerInputParameterfvNV */
     0, /* glGetCombinerInputParameterivNV */
@@ -4536,47 +4600,15 @@ static struct _glapi_table __logRenderTa
     0, /* glWindowPos4ivMESA */
     0, /* glWindowPos4sMESA */
     0, /* glWindowPos4svMESA */
-    logBlendFuncSeparateEXT,
-    0, /* glIndexMaterialEXT */
-    0, /* glIndexFuncEXT */
-    0, /* glLockArraysEXT */
-    0, /* glUnlockArraysEXT */
-    0, /* glCullParameterdvEXT */
-    0, /* glCullParameterfvEXT */
-    0, /* glHintPGI */
-    0, /* glFogCoordfEXT */
-    logFogCoordfvEXT,
-    0, /* glFogCoorddEXT */
-    logFogCoorddvEXT,
-    logFogCoordPointerEXT,
-    0, /* glGetColorTableEXT */
-    0, /* glGetColorTableParameterivEXT */
-    0, /* glGetColorTableParameterfvEXT */
-    0, /* glTbufferMask3DFX */
-    0, /* glCompressedTexImage3DARB */
-    0, /* glCompressedTexImage2DARB */
-    0, /* glCompressedTexImage1DARB */
-    0, /* glCompressedTexSubImage3DARB */
-    0, /* glCompressedTexSubImage2DARB */
-    0, /* glCompressedTexSubImage1DARB */
-    0, /* glGetCompressedTexImageARB */
-    0, /* glSecondaryColor3bEXT */
-    logSecondaryColor3bvEXT,
-    0, /* glSecondaryColor3dEXT */
-    logSecondaryColor3dvEXT,
-    0, /* glSecondaryColor3fEXT */
-    logSecondaryColor3fvEXT,
-    0, /* glSecondaryColor3iEXT */
-    logSecondaryColor3ivEXT,
-    0, /* glSecondaryColor3sEXT */
-    logSecondaryColor3svEXT,
-    0, /* glSecondaryColor3ubEXT */
-    logSecondaryColor3ubvEXT,
-    0, /* glSecondaryColor3uiEXT */
-    logSecondaryColor3uivEXT,
-    0, /* glSecondaryColor3usEXT */
-    logSecondaryColor3usvEXT,
-    logSecondaryColorPointerEXT,
+    0, /* glMultiModeDrawArraysIBM */
+    0, /* glMultiModeDrawElementsIBM */
+    0, /* glDeleteFencesNV */
+    0, /* glFinishFenceNV */
+    0, /* glGenFencesNV */
+    0, /* glGetFenceivNV */
+    0, /* glIsFenceNV */
+    0, /* glSetFenceNV */
+    0, /* glTestFenceNV */
     0, /* glAreProgramsResidentNV */
     logBindProgramARB,
     logDeleteProgramsARB,
@@ -4584,13 +4616,13 @@ static struct _glapi_table __logRenderTa
     logGenProgramsARB,
     0, /* glGetProgramParameterdvNV */
     0, /* glGetProgramParameterfvNV */
-    logGetProgramivARB,
     0, /* glGetProgramStringNV */
+    0, /* glGetProgramivNV */
     0, /* glGetTrackMatrixivNV */
-    logGetVertexAttribdvARB,
-    logGetVertexAttribfvARB,
-    logGetVertexAttribivARB,
     0, /* glGetVertexAttribPointervNV */
+    0, /* glGetVertexAttribdvNV */
+    0, /* glGetVertexAttribfvNV */
+    0, /* glGetVertexAttribivNV */
     logIsProgramARB,
     0, /* glLoadProgramNV */
     0, /* glProgramParameter4dNV */
@@ -4601,160 +4633,6 @@ static struct _glapi_table __logRenderTa
     0, /* glProgramParameters4fvNV */
     0, /* glRequestResidentProgramsNV */
     0, /* glTrackMatrixNV */
-    0, /* glVertexAttribPointerNV */
-    0, /* glVertexAttrib1dARB */
-    logVertexAttrib1dvARB,
-    0, /* glVertexAttrib1fARB */
-    logVertexAttrib1fvARB,
-    0, /* glVertexAttrib1sARB */
-    logVertexAttrib1svARB,
-    0, /* glVertexAttrib2dARB */
-    logVertexAttrib2dvARB,
-    0, /* glVertexAttrib2fARB */
-    logVertexAttrib2fvARB,
-    0, /* glVertexAttrib2sARB */
-    logVertexAttrib2svARB,
-    0, /* glVertexAttrib3dARB */
-    logVertexAttrib3dvARB,
-    0, /* glVertexAttrib3fARB */
-    logVertexAttrib3fvARB,
-    0, /* glVertexAttrib3sARB */
-    logVertexAttrib3svARB,
-    0, /* glVertexAttrib4dARB */
-    logVertexAttrib4dvARB,
-    0, /* glVertexAttrib4fARB */
-    logVertexAttrib4fvARB,
-    0, /* glVertexAttrib4sARB */
-    logVertexAttrib4svARB,
-    0, /* glVertexAttrib4NubARB */
-    logVertexAttrib4NubvARB,
-    0, /* glVertexAttribs1dvNV */
-    0, /* glVertexAttribs1fvNV */
-    0, /* glVertexAttribs1svNV */
-    0, /* glVertexAttribs2dvNV */
-    0, /* glVertexAttribs2fvNV */
-    0, /* glVertexAttribs2svNV */
-    0, /* glVertexAttribs3dvNV */
-    0, /* glVertexAttribs3fvNV */
-    0, /* glVertexAttribs3svNV */
-    0, /* glVertexAttribs4dvNV */
-    0, /* glVertexAttribs4fvNV */
-    0, /* glVertexAttribs4svNV */
-    0, /* glVertexAttribs4ubvNV */
-    logPointParameteriNV,
-    logPointParameterivNV,
-    0, /* glMultiDrawArraysEXT */
-    0, /* glMultiDrawElementsEXT */
-    logActiveStencilFaceEXT,
-    0, /* glDeleteFencesNV */
-    0, /* glGenFencesNV */
-    0, /* glIsFenceNV */
-    0, /* glTestFenceNV */
-    0, /* glGetFenceivNV */
-    0, /* glFinishFenceNV */
-    0, /* glSetFenceNV */
-    logVertexAttrib4bvARB,
-    logVertexAttrib4ivARB,
-    logVertexAttrib4ubvARB,
-    logVertexAttrib4usvARB,
-    logVertexAttrib4uivARB,
-    logVertexAttrib4NbvARB,
-    logVertexAttrib4NsvARB,
-    logVertexAttrib4NivARB,
-    logVertexAttrib4NusvARB,
-    logVertexAttrib4NuivARB,
-    0, /* glVertexAttribPointerARB */
-    0, /* glEnableVertexAttribArrayARB */
-    0, /* glDisableVertexAttribArrayARB */
-    logProgramStringARB,
-    0, /* glProgramEnvParameter4dARB */
-    logProgramEnvParameter4dvARB,
-    0, /* glProgramEnvParameter4fARB */
-    logProgramEnvParameter4fvARB,
-    0, /* glProgramLocalParameter4dARB */
-    logProgramLocalParameter4dvARB,
-    0, /* glProgramLocalParameter4fARB */
-    logProgramLocalParameter4fvARB,
-    logGetProgramEnvParameterdvARB,
-    logGetProgramEnvParameterfvARB,
-    logGetProgramLocalParameterdvARB,
-    logGetProgramLocalParameterfvARB,
-    logGetProgramivARB,
-    logGetProgramStringARB,
-    0, /* glProgramNamedParameter4fNV */
-    0, /* glProgramNamedParameter4dNV */
-    0, /* glProgramNamedParameter4fvNV */
-    0, /* glProgramNamedParameter4dvNV */
-    0, /* glGetProgramNamedParameterfvNV */
-    0, /* glGetProgramNamedParameterdvNV */
-    0, /* glBindBufferARB */
-    0, /* glBufferDataARB */
-    0, /* glBufferSubDataARB */
-    0, /* glDeleteBuffersARB */
-    0, /* glGenBuffersARB */
-    0, /* glGetBufferParameterivARB */
-    0, /* glGetBufferPointervARB */
-    0, /* glGetBufferSubDataARB */
-    0, /* glIsBufferARB */
-    0, /* glMapBufferARB */
-    0, /* glUnmapBufferARB */
-    0, /* glDepthBoundsEXT */
-    0, /* glGenQueriesARB */
-    0, /* glDeleteQueriesARB */
-    0, /* glIsQueryARB */
-    0, /* glBeginQueryARB */
-    0, /* glEndQueryARB */
-    0, /* glGetQueryivARB */
-    0, /* glGetQueryObjectivARB */
-    0, /* glGetQueryObjectuivARB */
-    0, /* glMultiModeDrawArraysIBM */
-    0, /* glMultiModeDrawElementsIBM */
-    0, /* glBlendEquationSeparateEXT */
-    0, /* glDeleteObjectARB */
-    0, /* glGetHandleARB */
-    0, /* glDetachObjectARB */
-    0, /* glCreateShaderObjectARB */
-    0, /* glShaderSourceARB */
-    0, /* glCompileShaderARB */
-    0, /* glCreateProgramObjectARB */
-    0, /* glAttachObjectARB */
-    0, /* glLinkProgramARB */
-    0, /* glUseProgramObjectARB */
-    0, /* glValidateProgramARB */
-    0, /* glUniform1fARB */
-    0, /* glUniform2fARB */
-    0, /* glUniform3fARB */
-    0, /* glUniform4fARB */
-    0, /* glUniform1iARB */
-    0, /* glUniform2iARB */
-    0, /* glUniform3iARB */
-    0, /* glUniform4iARB */
-    0, /* glUniform1fvARB */
-    0, /* glUniform2fvARB */
-    0, /* glUniform3fvARB */
-    0, /* glUniform4fvARB */
-    0, /* glUniform1ivARB */
-    0, /* glUniform2ivARB */
-    0, /* glUniform3ivARB */
-    0, /* glUniform4ivARB */
-    0, /* glUniformMatrix2fvARB */
-    0, /* glUniformMatrix3fvARB */
-    0, /* glUniformMatrix4fvARB */
-    0, /* glGetObjectParameterfvARB */
-    0, /* glGetObjectParameterivARB */
-    0, /* glGetInfoLogARB */
-    0, /* glGetAttachedObjectsARB */
-    0, /* glGetUniformLocationARB */
-    0, /* glGetActiveUniformARB */
-    0, /* glGetUniformfvARB */
-    0, /* glGetUniformivARB */
-    0, /* glGetShaderSourceARB */
-    0, /* glBindAttribLocationARB */
-    0, /* glGetActiveAttribARB */
-    0, /* glGetAttribLocationARB */
-    0, /* glGetVertexAttribdvNV */
-    0, /* glGetVertexAttribfvNV */
-    0, /* glGetVertexAttribivNV */
     0, /* glVertexAttrib1dNV */
     0, /* glVertexAttrib1dvNV */
     0, /* glVertexAttrib1fNV */
@@ -4781,43 +4659,71 @@ static struct _glapi_table __logRenderTa
     0, /* glVertexAttrib4svNV */
     0, /* glVertexAttrib4ubNV */
     0, /* glVertexAttrib4ubvNV */
-    0, /* glGenFragmentShadersATI */
+    0, /* glVertexAttribPointerNV */
+    0, /* glVertexAttribs1dvNV */
+    0, /* glVertexAttribs1fvNV */
+    0, /* glVertexAttribs1svNV */
+    0, /* glVertexAttribs2dvNV */
+    0, /* glVertexAttribs2fvNV */
+    0, /* glVertexAttribs2svNV */
+    0, /* glVertexAttribs3dvNV */
+    0, /* glVertexAttribs3fvNV */
+    0, /* glVertexAttribs3svNV */
+    0, /* glVertexAttribs4dvNV */
+    0, /* glVertexAttribs4fvNV */
+    0, /* glVertexAttribs4svNV */
+    0, /* glVertexAttribs4ubvNV */
+    0, /* glAlphaFragmentOp1ATI */
+    0, /* glAlphaFragmentOp2ATI */
+    0, /* glAlphaFragmentOp3ATI */
+    0, /* glBeginFragmentShaderATI */
     0, /* glBindFragmentShaderATI */
+    0, /* glColorFragmentOp1ATI */
+    0, /* glColorFragmentOp2ATI */
+    0, /* glColorFragmentOp3ATI */
     0, /* glDeleteFragmentShaderATI */
-    0, /* glBeginFragmentShaderATI */
     0, /* glEndFragmentShaderATI */
+    0, /* glGenFragmentShadersATI */
     0, /* glPassTexCoordATI */
     0, /* glSampleMapATI */
-    0, /* glColorFragmentOp1ATI */
-    0, /* glColorFragmentOp2ATI */
-    0, /* glColorFragmentOp3ATI */
-    0, /* glAlphaFragmentOp1ATI */
-    0, /* glAlphaFragmentOp2ATI */
-    0, /* glAlphaFragmentOp3ATI */
     0, /* glSetFragmentShaderConstantATI */
-    logIsRenderbufferEXT,
-    logBindRenderbufferEXT,
-    logDeleteRenderbuffersEXT,
-    logGenRenderbuffersEXT,
-    logRenderbufferStorageEXT,
-    logGetRenderbufferParameterivEXT,
-    logIsFramebufferEXT,
+    logPointParameteriNV,
+    logPointParameterivNV,
+    logActiveStencilFaceEXT,
+    0, /* glBindVertexArrayAPPLE */
+    0, /* glDeleteVertexArraysAPPLE */
+    0, /* glGenVertexArraysAPPLE */
+    0, /* glIsVertexArrayAPPLE */
+    0, /* glGetProgramNamedParameterdvNV */
+    0, /* glGetProgramNamedParameterfvNV */
+    0, /* glProgramNamedParameter4dNV */
+    0, /* glProgramNamedParameter4fNV */
+    0, /* glProgramNamedParameter4dvNV */
+    0, /* glProgramNamedParameter4fvNV */
+    0, /* glDepthBoundsEXT */
+    0, /* glBlendEquationSeparateEXT */
     logBindFramebufferEXT,
-    logDeleteFramebuffersEXT,
-    logGenFramebuffersEXT,
+    logBindRenderbufferEXT,
     logCheckFramebufferStatusEXT,
+    logDeleteFramebuffersEXT,
+    logDeleteRenderbuffersEXT,
+    logFramebufferRenderbufferEXT,
     logFramebufferTexture1DEXT,
     logFramebufferTexture2DEXT,
     logFramebufferTexture3DEXT,
-    logFramebufferRenderbufferEXT,
-    logGetFramebufferAttachmentParameterivEXT,
+    logGenFramebuffersEXT,
+    logGenRenderbuffersEXT,
     logGenerateMipmapEXT,
-    0, /* glStencilFuncSeparate */
-    0, /* glStencilOpSeparate */
-    0, /* glStencilMaskSeparate */
-    0, /* GetQueryObjecti64vEXT */
-    0, /* GetQueryObjectui64vEXT */
-    0  /* BlitFramebufferEXT */
+    logGetFramebufferAttachmentParameterivEXT,
+    logGetRenderbufferParameterivEXT,
+    logIsFramebufferEXT,
+    logIsRenderbufferEXT,
+    logRenderbufferStorageEXT,
+    0, /* glBlitFramebufferEXT */
+    0, /* glProgramEnvParameters4fvEXT */
+    0, /* glProgramLocalParameters4fvEXT */
+    0, /* glGetQueryObjecti64vEXT */
+    0  /* glGetQueryObjectui64vEXT */
 };
 
 static Bool isCurrent = FALSE;
diff-tree 634eb2efc1dc294281673e2fea37f3296ca8017a (from af707659b41142995cb542668fa5b17d41602564)
Author: Tiago Vignatti <tv02 at c3sl.ufpr.br>
Date:   Thu Oct 12 16:00:51 2006 -0400

    Add x-input-evdev support.

diff --git a/configure.ac b/configure.ac
index 920636f..4a60b3a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -384,6 +384,7 @@ AC_ARG_ENABLE(install-libxf86config,
 				[Install libxf86config (default: disabled)]),
 				[INSTALL_LIBXF86CONFIG=$enableval],
 				[INSTALL_LIBXF86CONFIG=no])
+AC_ARG_ENABLE(xevdev,           AS_HELP_STRING([--enable-xevdev], [Build X evdev support (default: disabled)]), [XEVDEV=$enableval], [XEVDEV=no])
 
 dnl Extensions.
 AC_ARG_ENABLE(composite,      AS_HELP_STRING([--disable-composite], [Build Composite extension (default: enabled)]), [COMPOSITE=$enableval], [COMPOSITE=yes])
@@ -787,6 +788,15 @@ if test "x$USE_RGB_BUILTIN" = xyes; then
 	AC_DEFINE(USE_RGB_BUILTIN, 1, [Use built-in RGB color database])
 fi
 
+AM_CONDITIONAL(XEVDEV, [test "x$XEVDEV" = xyes])
+if test "x$XEVDEV" != xno; then
+	AC_DEFINE(XEVDEV, 1, [Build X evdev support])
+
+	PKG_CHECK_MODULES([XEVDEV], [x-input-evdev])
+	AC_SUBST(XEVDEV_CFLAGS)
+	AC_SUBST(XEVDEV_LIBS)
+fi
+
 VENDOR_RELEASE="((($VERSION_MAJOR) * 10000000) + (($VERSION_MINOR) * 100000) + (($VERSION_PATCH) * 1000) + $VERSION_SNAP)"
 
 if test $VERSION_SNAP = "0"; then
diff --git a/hw/xgl/Makefile.am b/hw/xgl/Makefile.am
index a657e9b..75f19de 100644
--- a/hw/xgl/Makefile.am
+++ b/hw/xgl/Makefile.am
@@ -26,6 +26,7 @@ AM_CFLAGS =			       \
 	-I$(top_srcdir)/GL/include     \
 	-I at MESA_SOURCE@/include	       \
 	-I at MESA_SOURCE@/src/mesa/glapi \
+	$(XEVDEV_CFLAGS)	       \
 	$(XGLMODULES_CFLAGS)
 
 noinst_LIBRARIES = libxgl.a
@@ -78,6 +79,7 @@ Xgl_LDADD =		   \
 	libxgl.a	   \
 	$(XORG_CORE_LIBS)  \
 	$(XGL_LIBS)	   \
+	$(XEVDEV_LIBS)	   \
 	$(XGLMODULES_LIBS) \
 	$(XSERVER_LIBS)
 
diff --git a/hw/xgl/egl/xeglinit.c b/hw/xgl/egl/xeglinit.c
index 372b232..b10873d 100644
--- a/hw/xgl/egl/xeglinit.c
+++ b/hw/xgl/egl/xeglinit.c
@@ -42,6 +42,12 @@ static xglScreenInfoRec xglScreenInfo = 
     }
 };
 
+#ifdef XEVDEV
+Bool useEvdev = FALSE;
+char *kbdEvdevFile = "/dev/input/event0";
+char *ptrEvdevFile = "/dev/input/event1";
+#endif
+
 #ifdef GLXEXT
 static Bool loadGlx = TRUE;
 #endif
diff --git a/hw/xgl/glx/xglx.c b/hw/xgl/glx/xglx.c
index 76766e4..a955fb1 100644
--- a/hw/xgl/glx/xglx.c
+++ b/hw/xgl/glx/xglx.c
@@ -1602,6 +1602,19 @@ xglxInitInput (int  argc,
 {
     DeviceIntPtr pKeyboard, pPointer;
 
+#ifdef XEVDEV
+    if (useEvdev)
+    {
+	xglInitInput (argc, argv);
+
+	RegisterBlockAndWakeupHandlers (xglxBlockHandler,
+					xglWakeupHandler,
+					NULL);
+
+	return;
+    }
+#endif
+
     pPointer  = AddInputDevice (xglxPointerProc, TRUE);
     pKeyboard = AddInputDevice (xglxKeybdProc, TRUE);
 
diff --git a/hw/xgl/glx/xglxinit.c b/hw/xgl/glx/xglxinit.c
index a1fdb98..3172af8 100644
--- a/hw/xgl/glx/xglxinit.c
+++ b/hw/xgl/glx/xglxinit.c
@@ -43,6 +43,12 @@ xglScreenInfoRec xglScreenInfo = {
     }
 };
 
+#ifdef XEVDEV
+Bool useEvdev = FALSE;
+char *kbdEvdevFile = "/dev/input/event0";
+char *ptrEvdevFile = "/dev/input/event1";
+#endif
+
 #ifdef GLXEXT
 static Bool loadGlx = TRUE;
 
diff --git a/hw/xgl/xgl.h b/hw/xgl/xgl.h
index 2a841bd..c22c196 100644
--- a/hw/xgl/xgl.h
+++ b/hw/xgl/xgl.h
@@ -508,6 +508,18 @@ xglKbdCtrl (DeviceIntPtr pDevice,
 void
 xglInitInput (int argc, char **argv);
 
+#ifdef XEVDEV
+
+extern Bool useEvdev;
+extern char *kbdEvdevFile;
+extern char *ptrEvdevFile;
+
+void
+xglWakeupHandler (pointer blockData,
+		  int	  result,
+		  pointer pReadMask);
+
+#endif
 
 /* xgloutput.c */
 
diff --git a/hw/xgl/xglinit.c b/hw/xgl/xglinit.c
index 50b374d..f7fde59 100644
--- a/hw/xgl/xglinit.c
+++ b/hw/xgl/xglinit.c
@@ -54,6 +54,12 @@ xglScreenInfoRec xglScreenInfo = {
     }
 };
 
+#ifdef XEVDEV
+Bool useEvdev = FALSE;
+char *kbdEvdevFile = "/dev/input/event0";
+char *ptrEvdevFile = "/dev/input/event1";
+#endif
+
 #ifdef GLXEXT
 static Bool loadGlx = TRUE;
 
diff --git a/hw/xgl/xglinput.c b/hw/xgl/xglinput.c
index cda21ad..c355d78 100644
--- a/hw/xgl/xglinput.c
+++ b/hw/xgl/xglinput.c
@@ -35,6 +35,147 @@
 
 #define NUM_BUTTONS 7
 
+#ifdef XEVDEV
+#include <X11/Xevdev.h>
+
+static CARD32 lastEventTime = 0;
+
+static int EventToXserver[] = {
+    0,      1,      2,      3,      4,      5,      6,      7,
+    8,      9,      10,     11,     12,     13,     14,     15,
+    16,     17,     18,     19,     20,     21,     22,     23,
+    24,     25,     26,     27,     28,     29,     30,     31,
+    32,     33,     34,     35,     36,     37,     38,     39,
+    40,     41,     42,     43,     44,     45,     46,     47,
+    48,     49,     50,     51,     52,     53,     54,     55,
+    56,     57,     58,     59,     60,     61,     62,     63,
+    64,     65,     66,     67,     68,     69,     70,     71,
+    72,     73,     74,     75,     76,     77,     78,     79,
+    80,     81,     82,     83,     84,     85,     86,     87,
+    88,     203,    90,     91,     92,     93,     94,     126,
+    100,    101,    104,    99,     105,    101,    89,     90,
+    91,     92,     94,     95,     96,     97,     98,     99,
+    112,    113,    114,    115,    214,    117,    118,    102,
+    120,    126,    122,    123,    124,    125,    126,    127,
+    128,    129,    130,    131,    132,    133,    134,    135,
+    136,    137,    138,    109,    140,    141,    215,    219,
+    144,    145,    146,    147,    148,    149,    150,    151,
+    152,    153,    154,    155,    156,    157,    158,    159,
+    160,    161,    162,    163,    164,    165,    166,    167,
+    168,    169,    170,    171,    172,    173,    174,    175,
+    176,    177,    178,    179,    180,    181,    182,    183,
+    184,    185,    186,    187,    188,    189,    190,    191,
+    192,    193,    194,    195,    196,    197,    198,    199,
+    200,    201,    202,    203,    204,    205,    206,    207,
+    208,    209,    210,    211,    212,    213,    214,    215,
+    216,    217,    218,    219,    220,    221,    222,    223,
+    224,    225,    226,    227,    228,    229,    230,    231,
+    232,    233,    234,    235,    236,    237,    238,    239,
+    240,    241,    242,    243,    244,    245,    246,    247,
+    248
+};
+
+static void
+xglEvdevReadInput (void)
+{
+    struct input_event ie;
+    xEvent             x;
+    int                i;
+
+    while (EvdevCheckIfEvent (&ie))
+    {
+	switch (ie.type) {
+	case EV_REL:
+	    switch (ie.code) {
+	    case REL_X:
+		miPointerDeltaCursor (ie.value, 0,
+				      lastEventTime = GetTimeInMillis ());
+		break;
+	    case REL_Y:
+		miPointerDeltaCursor (0, ie.value,
+				      lastEventTime = GetTimeInMillis ());
+		break;
+	    case REL_WHEEL:
+		if (ie.value > 0)
+		{
+		    x.u.u.detail = 4;
+		}
+		else
+		{
+		    x.u.u.detail = 5;
+		    ie.value *= -1;
+		}
+
+		for (i = 0; i < ie.value; i++)
+		{
+		    x.u.u.type = ButtonPress;
+		    mieqEnqueue (&x);
+
+		    x.u.u.type = ButtonRelease;
+		    mieqEnqueue (&x);
+		}
+		break;
+	    case REL_HWHEEL:
+		if (ie.value > 0)
+		{
+		    x.u.u.detail = 6;
+		}
+		else
+		{
+		    x.u.u.detail = 7;
+		    ie.value *= -1;
+		}
+
+		for (i = 0; i < ie.value; i++)
+		{
+		    x.u.u.type = ButtonPress;
+		    mieqEnqueue (&x);
+
+		    x.u.u.type = ButtonRelease;
+		    mieqEnqueue (&x);
+		}
+		break;
+	    }
+	    break;
+	case EV_ABS:
+	    break;
+	case EV_KEY:
+	    if (ie.code >= BTN_MOUSE && ie.type < BTN_JOYSTICK)
+	    {
+		x.u.u.type = ie.value ? ButtonPress : ButtonRelease;
+		switch (ie.code) {
+		case BTN_LEFT:
+		    x.u.u.detail = 1;
+		    break;
+		case BTN_MIDDLE:
+		    x.u.u.detail = 2;
+		    break;
+		case BTN_RIGHT:
+		    x.u.u.detail = 3;
+		    break;
+		default:
+		    x.u.u.detail = 2;
+		    break;
+		}
+
+		x.u.keyButtonPointer.time = lastEventTime = GetTimeInMillis ();
+		mieqEnqueue(&x);
+		break;
+	    }
+	    else
+	    {
+		x.u.u.type = ie.value ? KeyPress : KeyRelease;
+		x.u.u.detail = EventToXserver[ie.code] + 8;
+		x.u.keyButtonPointer.time = lastEventTime = GetTimeInMillis ();
+		mieqEnqueue (&x);
+	    }
+	case EV_SYN:
+	    break;
+	}
+    }
+}
+#endif
+
 int
 xglMouseProc (DeviceIntPtr pDevice,
 	      int	   onoff)
@@ -227,19 +368,43 @@ xglKeybdProc (DeviceIntPtr pDevice,
 	if (pDev != LookupKeyboardDevice ())
 	    return !Success;
 
+#ifdef XEVDEV
+	if (useEvdev)
+	{
+	    EvdevInit (pDevice);
+	    return Success;
+	}
+#endif
 	ret = InitKeyboardDeviceStruct (pDev,
 					&xglKeySyms,
 					xglModMap,
 					xglBell,
 					xglKbdCtrl);
+
 	if (!ret)
 	    return BadImplementation;
 	break;
     case DEVICE_ON:
 	pDev->on = TRUE;
+
+#ifdef XEVDEV
+	/* When evdev input is set the events are grabbed per default.
+	 * EvdevGrabKeyboard is need to be changed to XGrabKeyboard
+	 * xlib function thus Xgl will be able to choose if want or not
+	 * be grabbed. */
+	if (useEvdev)
+	    EvdevGrabKeyboard ();
+#endif
+
 	break;
     case DEVICE_OFF:
     case DEVICE_CLOSE:
+
+#ifdef XEVDEV
+	if (useEvdev)
+	    EvdevUngrabKeyboard ();
+#endif
+
 	pDev->on = FALSE;
 	break;
     }
@@ -252,6 +417,11 @@ xglInitInput (int argc, char **argv)
 {
     DeviceIntPtr pKeyboard, pPointer;
 
+#ifdef XEVDEV
+    if (useEvdev)
+	OpenEvdevInput (kbdEvdevFile, ptrEvdevFile, xglEvdevReadInput);
+#endif
+
     pPointer  = AddInputDevice (xglMouseProc, TRUE);
     pKeyboard = AddInputDevice (xglKeybdProc, TRUE);
 
@@ -261,3 +431,10 @@ xglInitInput (int argc, char **argv)
     miRegisterPointerDevice (screenInfo.screens[0], pPointer);
     mieqInit (&pKeyboard->public, &pPointer->public);
 }
+
+void
+xglWakeupHandler (pointer blockData,
+		  int     result,
+		  pointer pReadMask)
+{
+}
diff --git a/hw/xgl/xglparse.c b/hw/xgl/xglparse.c
index e3e3028..983ee67 100644
--- a/hw/xgl/xglparse.c
+++ b/hw/xgl/xglparse.c
@@ -201,6 +201,12 @@ xglUseMsg (void)
 	    "set bpp's to use with pixel buffer objects\n");
     ErrorF ("-accel TYPE[@WIDTH[/MIN]xHEIGHT[/MIN]][:METHOD] "
 	    "offscreen acceleration\n");
+
+#ifdef XEVDEV
+    ErrorF ("-kbd file              evdev file to read keyboard events\n");
+    ErrorF ("-ptr file              evdev file to read pointer events\n");
+#endif
+
 }
 
 int
@@ -283,5 +289,32 @@ xglProcessArgument (int	 argc,
 	return 2;
     }
 
+#ifdef XEVDEV
+    else if (!strcmp (argv[i], "-kbd"))
+    {
+	if ((i + 1) < argc)
+	{
+	    kbdEvdevFile = argv[i + 1];
+	    useEvdev = TRUE;
+	}
+	else
+	    return 1;
+
+	return 2;
+    }
+    else if (!strcmp (argv[i], "-ptr"))
+    {
+	if ((i + 1) < argc)
+	{
+	    ptrEvdevFile = argv[i + 1];
+	    useEvdev = TRUE;
+	}
+	else
+	    return 1;
+
+	return 2;
+    }
+#endif
+
     return 0;
 }
diff --git a/include/xgl-config.h.in b/include/xgl-config.h.in
index 73091c9..9d23c9b 100644
--- a/include/xgl-config.h.in
+++ b/include/xgl-config.h.in
@@ -13,3 +13,6 @@
 
 /* Default XGL module search path */
 #undef XGL_MODULE_PATH
+
+/* Use X evdev */
+#undef XEVDEV



More information about the xorg-commit mailing list