Hmm. It seems I mistakenly combined patches 6 & 7 in the series. I'll send out a fixed v4. Sorry for the extra mail.
-Jordan On Fri, Jul 27, 2012 at 2:07 PM, Jordan Justen <jordan.l.jus...@intel.com> wrote: > Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> > --- > src/mesa/drivers/dri/intel/intel_extensions.c | 2 +- > src/mesa/main/api_exec.c | 227 > +++++++++++++++---------- > src/mesa/main/api_exec.h | 3 +- > src/mesa/main/context.c | 2 +- > src/mesa/main/vtxfmt.c | 167 +++++++++--------- > 5 files changed, 233 insertions(+), 168 deletions(-) > > diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c > b/src/mesa/drivers/dri/intel/intel_extensions.c > index c2bc072..b752216 100755 > --- a/src/mesa/drivers/dri/intel/intel_extensions.c > +++ b/src/mesa/drivers/dri/intel/intel_extensions.c > @@ -44,7 +44,7 @@ intelInitExtensions(struct gl_context *ctx) > > ctx->Extensions.ARB_draw_elements_base_vertex = true; > ctx->Extensions.ARB_explicit_attrib_location = true; > - if (ctx->API == API_OPENGL) > + if (_mesa_is_desktop_gl(ctx)) > ctx->Extensions.ARB_framebuffer_object = true; > ctx->Extensions.ARB_half_float_pixel = true; > ctx->Extensions.ARB_map_buffer_range = true; > diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c > index 19e7f98..81be46d 100644 > --- a/src/mesa/main/api_exec.c > +++ b/src/mesa/main/api_exec.c > @@ -120,7 +120,7 @@ > * \param exec dispatch table. > */ > struct _glapi_table * > -_mesa_create_exec_table(void) > +_mesa_create_exec_table(struct gl_context *ctx) > { > struct _glapi_table *exec; > > @@ -133,7 +133,10 @@ _mesa_create_exec_table(void) > #endif > > /* load the dispatch slots we understand */ > - SET_AlphaFunc(exec, _mesa_AlphaFunc); > + if (ctx->API != API_OPENGL_CORE) { > + SET_AlphaFunc(exec, _mesa_AlphaFunc); > + } > + > SET_BlendFunc(exec, _mesa_BlendFunc); > SET_Clear(exec, _mesa_Clear); > SET_ClearColor(exec, _mesa_ClearColor); > @@ -149,42 +152,62 @@ _mesa_create_exec_table(void) > SET_Finish(exec, _mesa_Finish); > SET_Flush(exec, _mesa_Flush); > SET_FrontFace(exec, _mesa_FrontFace); > - SET_Frustum(exec, _mesa_Frustum); > + if (ctx->API != API_OPENGL_CORE) { > + SET_Frustum(exec, _mesa_Frustum); > + } > SET_GetError(exec, _mesa_GetError); > SET_GetFloatv(exec, _mesa_GetFloatv); > SET_GetString(exec, _mesa_GetString); > - SET_LineStipple(exec, _mesa_LineStipple); > + if (ctx->API != API_OPENGL_CORE) { > + SET_LineStipple(exec, _mesa_LineStipple); > + } > SET_LineWidth(exec, _mesa_LineWidth); > - SET_LoadIdentity(exec, _mesa_LoadIdentity); > - SET_LoadMatrixf(exec, _mesa_LoadMatrixf); > + if (ctx->API != API_OPENGL_CORE) { > + SET_LoadIdentity(exec, _mesa_LoadIdentity); > + SET_LoadMatrixf(exec, _mesa_LoadMatrixf); > + } > SET_LogicOp(exec, _mesa_LogicOp); > - SET_MatrixMode(exec, _mesa_MatrixMode); > - SET_MultMatrixf(exec, _mesa_MultMatrixf); > - SET_Ortho(exec, _mesa_Ortho); > + if (ctx->API != API_OPENGL_CORE) { > + SET_MatrixMode(exec, _mesa_MatrixMode); > + SET_MultMatrixf(exec, _mesa_MultMatrixf); > + SET_Ortho(exec, _mesa_Ortho); > + } > SET_PixelStorei(exec, _mesa_PixelStorei); > - SET_PopMatrix(exec, _mesa_PopMatrix); > - SET_PushMatrix(exec, _mesa_PushMatrix); > - SET_Rotatef(exec, _mesa_Rotatef); > - SET_Scalef(exec, _mesa_Scalef); > + if (ctx->API != API_OPENGL_CORE) { > + SET_PopMatrix(exec, _mesa_PopMatrix); > + SET_PushMatrix(exec, _mesa_PushMatrix); > + SET_Rotatef(exec, _mesa_Rotatef); > + SET_Scalef(exec, _mesa_Scalef); > + } > SET_Scissor(exec, _mesa_Scissor); > - SET_ShadeModel(exec, _mesa_ShadeModel); > + if (ctx->API != API_OPENGL_CORE) { > + SET_ShadeModel(exec, _mesa_ShadeModel); > + } > SET_StencilFunc(exec, _mesa_StencilFunc); > SET_StencilMask(exec, _mesa_StencilMask); > SET_StencilOp(exec, _mesa_StencilOp); > - SET_TexEnvfv(exec, _mesa_TexEnvfv); > - SET_TexEnvi(exec, _mesa_TexEnvi); > + if (ctx->API != API_OPENGL_CORE) { > + SET_TexEnvfv(exec, _mesa_TexEnvfv); > + SET_TexEnvi(exec, _mesa_TexEnvi); > + } > SET_TexImage2D(exec, _mesa_TexImage2D); > SET_TexParameteri(exec, _mesa_TexParameteri); > - SET_Translatef(exec, _mesa_Translatef); > + if (ctx->API != API_OPENGL_CORE) { > + SET_Translatef(exec, _mesa_Translatef); > + } > SET_Viewport(exec, _mesa_Viewport); > > - _mesa_init_accum_dispatch(exec); > - _mesa_init_dlist_dispatch(exec); > + if (ctx->API != API_OPENGL_CORE) { > + _mesa_init_accum_dispatch(exec); > + _mesa_init_dlist_dispatch(exec); > + } > > SET_ClearDepth(exec, _mesa_ClearDepth); > - SET_ClearIndex(exec, _mesa_ClearIndex); > - SET_ClipPlane(exec, _mesa_ClipPlane); > - SET_ColorMaterial(exec, _mesa_ColorMaterial); > + if (ctx->API != API_OPENGL_CORE) { > + SET_ClearIndex(exec, _mesa_ClearIndex); > + SET_ClipPlane(exec, _mesa_ClipPlane); > + SET_ColorMaterial(exec, _mesa_ColorMaterial); > + } > SET_DepthFunc(exec, _mesa_DepthFunc); > SET_DepthMask(exec, _mesa_DepthMask); > SET_DepthRange(exec, _mesa_DepthRange); > @@ -192,43 +215,53 @@ _mesa_create_exec_table(void) > _mesa_init_drawpix_dispatch(exec); > _mesa_init_feedback_dispatch(exec); > > - SET_FogCoordPointerEXT(exec, _mesa_FogCoordPointerEXT); > - SET_Fogf(exec, _mesa_Fogf); > - SET_Fogfv(exec, _mesa_Fogfv); > - SET_Fogi(exec, _mesa_Fogi); > - SET_Fogiv(exec, _mesa_Fogiv); > - SET_GetClipPlane(exec, _mesa_GetClipPlane); > + if (ctx->API != API_OPENGL_CORE) { > + SET_FogCoordPointerEXT(exec, _mesa_FogCoordPointerEXT); > + SET_Fogf(exec, _mesa_Fogf); > + SET_Fogfv(exec, _mesa_Fogfv); > + SET_Fogi(exec, _mesa_Fogi); > + SET_Fogiv(exec, _mesa_Fogiv); > + SET_GetClipPlane(exec, _mesa_GetClipPlane); > + } > SET_GetBooleanv(exec, _mesa_GetBooleanv); > SET_GetDoublev(exec, _mesa_GetDoublev); > SET_GetIntegerv(exec, _mesa_GetIntegerv); > - SET_GetLightfv(exec, _mesa_GetLightfv); > - SET_GetLightiv(exec, _mesa_GetLightiv); > - SET_GetMaterialfv(exec, _mesa_GetMaterialfv); > - SET_GetMaterialiv(exec, _mesa_GetMaterialiv); > - SET_GetPolygonStipple(exec, _mesa_GetPolygonStipple); > - SET_GetTexEnvfv(exec, _mesa_GetTexEnvfv); > - SET_GetTexEnviv(exec, _mesa_GetTexEnviv); > + if (ctx->API != API_OPENGL_CORE) { > + SET_GetLightfv(exec, _mesa_GetLightfv); > + SET_GetLightiv(exec, _mesa_GetLightiv); > + SET_GetMaterialfv(exec, _mesa_GetMaterialfv); > + SET_GetMaterialiv(exec, _mesa_GetMaterialiv); > + SET_GetPolygonStipple(exec, _mesa_GetPolygonStipple); > + SET_GetTexEnvfv(exec, _mesa_GetTexEnvfv); > + SET_GetTexEnviv(exec, _mesa_GetTexEnviv); > + } > SET_GetTexLevelParameterfv(exec, _mesa_GetTexLevelParameterfv); > SET_GetTexLevelParameteriv(exec, _mesa_GetTexLevelParameteriv); > SET_GetTexParameterfv(exec, _mesa_GetTexParameterfv); > SET_GetTexParameteriv(exec, _mesa_GetTexParameteriv); > SET_GetTexImage(exec, _mesa_GetTexImage); > SET_Hint(exec, _mesa_Hint); > - SET_IndexMask(exec, _mesa_IndexMask); > + if (ctx->API != API_OPENGL_CORE) { > + SET_IndexMask(exec, _mesa_IndexMask); > + } > SET_IsEnabled(exec, _mesa_IsEnabled); > - SET_LightModelf(exec, _mesa_LightModelf); > - SET_LightModelfv(exec, _mesa_LightModelfv); > - SET_LightModeli(exec, _mesa_LightModeli); > - SET_LightModeliv(exec, _mesa_LightModeliv); > - SET_Lightf(exec, _mesa_Lightf); > - SET_Lightfv(exec, _mesa_Lightfv); > - SET_Lighti(exec, _mesa_Lighti); > - SET_Lightiv(exec, _mesa_Lightiv); > - SET_LoadMatrixd(exec, _mesa_LoadMatrixd); > + if (ctx->API != API_OPENGL_CORE) { > + SET_LightModelf(exec, _mesa_LightModelf); > + SET_LightModelfv(exec, _mesa_LightModelfv); > + SET_LightModeli(exec, _mesa_LightModeli); > + SET_LightModeliv(exec, _mesa_LightModeliv); > + SET_Lightf(exec, _mesa_Lightf); > + SET_Lightfv(exec, _mesa_Lightfv); > + SET_Lighti(exec, _mesa_Lighti); > + SET_Lightiv(exec, _mesa_Lightiv); > + SET_LoadMatrixd(exec, _mesa_LoadMatrixd); > + } > > _mesa_init_eval_dispatch(exec); > > - SET_MultMatrixd(exec, _mesa_MultMatrixd); > + if (ctx->API != API_OPENGL_CORE) { > + SET_MultMatrixd(exec, _mesa_MultMatrixd); > + } > > _mesa_init_pixel_dispatch(exec); > > @@ -236,17 +269,21 @@ _mesa_create_exec_table(void) > SET_PointSize(exec, _mesa_PointSize); > SET_PolygonMode(exec, _mesa_PolygonMode); > SET_PolygonOffset(exec, _mesa_PolygonOffset); > - SET_PolygonStipple(exec, _mesa_PolygonStipple); > + if (ctx->API != API_OPENGL_CORE) { > + SET_PolygonStipple(exec, _mesa_PolygonStipple); > + } > > _mesa_init_attrib_dispatch(exec); > _mesa_init_rastpos_dispatch(exec); > > SET_ReadPixels(exec, _mesa_ReadPixels); > - SET_Rotated(exec, _mesa_Rotated); > - SET_Scaled(exec, _mesa_Scaled); > - SET_SecondaryColorPointerEXT(exec, _mesa_SecondaryColorPointerEXT); > - SET_TexEnvf(exec, _mesa_TexEnvf); > - SET_TexEnviv(exec, _mesa_TexEnviv); > + if (ctx->API != API_OPENGL_CORE) { > + SET_Rotated(exec, _mesa_Rotated); > + SET_Scaled(exec, _mesa_Scaled); > + SET_SecondaryColorPointerEXT(exec, _mesa_SecondaryColorPointerEXT); > + SET_TexEnvf(exec, _mesa_TexEnvf); > + SET_TexEnviv(exec, _mesa_TexEnviv); > + } > > _mesa_init_texgen_dispatch(exec); > > @@ -254,32 +291,42 @@ _mesa_create_exec_table(void) > SET_TexParameterf(exec, _mesa_TexParameterf); > SET_TexParameterfv(exec, _mesa_TexParameterfv); > SET_TexParameteriv(exec, _mesa_TexParameteriv); > - SET_Translated(exec, _mesa_Translated); > + if (ctx->API != API_OPENGL_CORE) { > + SET_Translated(exec, _mesa_Translated); > + } > > /* 1.1 */ > SET_BindTexture(exec, _mesa_BindTexture); > SET_DeleteTextures(exec, _mesa_DeleteTextures); > SET_GenTextures(exec, _mesa_GenTextures); > #if _HAVE_FULL_GL > - SET_AreTexturesResident(exec, _mesa_AreTexturesResident); > - SET_ColorPointer(exec, _mesa_ColorPointer); > + if (ctx->API != API_OPENGL_CORE) { > + SET_AreTexturesResident(exec, _mesa_AreTexturesResident); > + SET_ColorPointer(exec, _mesa_ColorPointer); > + } > SET_CopyTexImage1D(exec, _mesa_CopyTexImage1D); > SET_CopyTexImage2D(exec, _mesa_CopyTexImage2D); > SET_CopyTexSubImage1D(exec, _mesa_CopyTexSubImage1D); > SET_CopyTexSubImage2D(exec, _mesa_CopyTexSubImage2D); > - SET_DisableClientState(exec, _mesa_DisableClientState); > - SET_EdgeFlagPointer(exec, _mesa_EdgeFlagPointer); > - SET_EnableClientState(exec, _mesa_EnableClientState); > - SET_GetPointerv(exec, _mesa_GetPointerv); > - SET_IndexPointer(exec, _mesa_IndexPointer); > - SET_InterleavedArrays(exec, _mesa_InterleavedArrays); > + if (ctx->API != API_OPENGL_CORE) { > + SET_DisableClientState(exec, _mesa_DisableClientState); > + SET_EdgeFlagPointer(exec, _mesa_EdgeFlagPointer); > + SET_EnableClientState(exec, _mesa_EnableClientState); > + SET_GetPointerv(exec, _mesa_GetPointerv); > + SET_IndexPointer(exec, _mesa_IndexPointer); > + SET_InterleavedArrays(exec, _mesa_InterleavedArrays); > + } > SET_IsTexture(exec, _mesa_IsTexture); > - SET_NormalPointer(exec, _mesa_NormalPointer); > - SET_PrioritizeTextures(exec, _mesa_PrioritizeTextures); > - SET_TexCoordPointer(exec, _mesa_TexCoordPointer); > + if (ctx->API != API_OPENGL_CORE) { > + SET_NormalPointer(exec, _mesa_NormalPointer); > + SET_PrioritizeTextures(exec, _mesa_PrioritizeTextures); > + SET_TexCoordPointer(exec, _mesa_TexCoordPointer); > + } > SET_TexSubImage1D(exec, _mesa_TexSubImage1D); > SET_TexSubImage2D(exec, _mesa_TexSubImage2D); > - SET_VertexPointer(exec, _mesa_VertexPointer); > + if (ctx->API != API_OPENGL_CORE) { > + SET_VertexPointer(exec, _mesa_VertexPointer); > + } > #endif > > /* 1.2 */ > @@ -327,31 +374,37 @@ _mesa_create_exec_table(void) > > /* 11. GL_EXT_histogram */ > #if 0 > - SET_GetHistogramEXT(exec, _mesa_GetHistogram); > - SET_GetHistogramParameterfvEXT(exec, _mesa_GetHistogramParameterfv); > - SET_GetHistogramParameterivEXT(exec, _mesa_GetHistogramParameteriv); > - SET_GetMinmaxEXT(exec, _mesa_GetMinmax); > - SET_GetMinmaxParameterfvEXT(exec, _mesa_GetMinmaxParameterfv); > - SET_GetMinmaxParameterivEXT(exec, _mesa_GetMinmaxParameteriv); > + if (ctx->API != API_OPENGL_CORE) { > + SET_GetHistogramEXT(exec, _mesa_GetHistogram); > + SET_GetHistogramParameterfvEXT(exec, _mesa_GetHistogramParameterfv); > + SET_GetHistogramParameterivEXT(exec, _mesa_GetHistogramParameteriv); > + SET_GetMinmaxEXT(exec, _mesa_GetMinmax); > + SET_GetMinmaxParameterfvEXT(exec, _mesa_GetMinmaxParameterfv); > + SET_GetMinmaxParameterivEXT(exec, _mesa_GetMinmaxParameteriv); > + } > #endif > > /* 14. SGI_color_table */ > #if 0 > - SET_ColorTableSGI(exec, _mesa_ColorTable); > - SET_ColorSubTableSGI(exec, _mesa_ColorSubTable); > - SET_GetColorTableSGI(exec, _mesa_GetColorTable); > - SET_GetColorTableParameterfvSGI(exec, _mesa_GetColorTableParameterfv); > - SET_GetColorTableParameterivSGI(exec, _mesa_GetColorTableParameteriv); > + if (ctx->API != API_OPENGL_CORE) { > + SET_ColorTableSGI(exec, _mesa_ColorTable); > + SET_ColorSubTableSGI(exec, _mesa_ColorSubTable); > + SET_GetColorTableSGI(exec, _mesa_GetColorTable); > + SET_GetColorTableParameterfvSGI(exec, _mesa_GetColorTableParameterfv); > + SET_GetColorTableParameterivSGI(exec, _mesa_GetColorTableParameteriv); > + } > #endif > > /* 30. GL_EXT_vertex_array */ > #if _HAVE_FULL_GL > - SET_ColorPointerEXT(exec, _mesa_ColorPointerEXT); > - SET_EdgeFlagPointerEXT(exec, _mesa_EdgeFlagPointerEXT); > - SET_IndexPointerEXT(exec, _mesa_IndexPointerEXT); > - SET_NormalPointerEXT(exec, _mesa_NormalPointerEXT); > - SET_TexCoordPointerEXT(exec, _mesa_TexCoordPointerEXT); > - SET_VertexPointerEXT(exec, _mesa_VertexPointerEXT); > + if (ctx->API != API_OPENGL_CORE) { > + SET_ColorPointerEXT(exec, _mesa_ColorPointerEXT); > + SET_EdgeFlagPointerEXT(exec, _mesa_EdgeFlagPointerEXT); > + SET_IndexPointerEXT(exec, _mesa_IndexPointerEXT); > + SET_NormalPointerEXT(exec, _mesa_NormalPointerEXT); > + SET_TexCoordPointerEXT(exec, _mesa_TexCoordPointerEXT); > + SET_VertexPointerEXT(exec, _mesa_VertexPointerEXT); > + } > #endif > > /* 37. GL_EXT_blend_minmax */ > @@ -483,10 +536,12 @@ _mesa_create_exec_table(void) > > /* ARB 3. GL_ARB_transpose_matrix */ > #if _HAVE_FULL_GL > - SET_LoadTransposeMatrixdARB(exec, _mesa_LoadTransposeMatrixdARB); > - SET_LoadTransposeMatrixfARB(exec, _mesa_LoadTransposeMatrixfARB); > - SET_MultTransposeMatrixdARB(exec, _mesa_MultTransposeMatrixdARB); > - SET_MultTransposeMatrixfARB(exec, _mesa_MultTransposeMatrixfARB); > + if (ctx->API != API_OPENGL_CORE) { > + SET_LoadTransposeMatrixdARB(exec, _mesa_LoadTransposeMatrixdARB); > + SET_LoadTransposeMatrixfARB(exec, _mesa_LoadTransposeMatrixfARB); > + SET_MultTransposeMatrixdARB(exec, _mesa_MultTransposeMatrixdARB); > + SET_MultTransposeMatrixfARB(exec, _mesa_MultTransposeMatrixfARB); > + } > #endif > > /* ARB 5. GL_ARB_multisample */ > diff --git a/src/mesa/main/api_exec.h b/src/mesa/main/api_exec.h > index 29c953f..100e972 100644 > --- a/src/mesa/main/api_exec.h > +++ b/src/mesa/main/api_exec.h > @@ -28,12 +28,13 @@ > > > struct _glapi_table; > +struct gl_context; > > extern struct _glapi_table * > _mesa_alloc_dispatch_table(int size); > > extern struct _glapi_table * > -_mesa_create_exec_table(void); > +_mesa_create_exec_table(struct gl_context *ctx); > > extern struct _glapi_table * > _mesa_create_exec_table_es1(void); > diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c > index 7dbfe0f..05140a6 100644 > --- a/src/mesa/main/context.c > +++ b/src/mesa/main/context.c > @@ -963,7 +963,7 @@ _mesa_initialize_context(struct gl_context *ctx, > #if FEATURE_GL > case API_OPENGL: > case API_OPENGL_CORE: > - ctx->Exec = _mesa_create_exec_table(); > + ctx->Exec = _mesa_create_exec_table(ctx); > break; > #endif > #if FEATURE_ES1 > diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c > index bc925b0..ce490ed 100644 > --- a/src/mesa/main/vtxfmt.c > +++ b/src/mesa/main/vtxfmt.c > @@ -45,57 +45,64 @@ > * API dispatch table. > */ > static void > -install_vtxfmt( struct _glapi_table *tab, const GLvertexformat *vfmt ) > +install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab, > + const GLvertexformat *vfmt) > { > _mesa_install_arrayelt_vtxfmt(tab, vfmt); > > - SET_Color3f(tab, vfmt->Color3f); > - SET_Color3fv(tab, vfmt->Color3fv); > - SET_Color4f(tab, vfmt->Color4f); > - SET_Color4fv(tab, vfmt->Color4fv); > - SET_EdgeFlag(tab, vfmt->EdgeFlag); > + if (ctx->API != API_OPENGL_CORE) { > + SET_Color3f(tab, vfmt->Color3f); > + SET_Color3fv(tab, vfmt->Color3fv); > + SET_Color4f(tab, vfmt->Color4f); > + SET_Color4fv(tab, vfmt->Color4fv); > + SET_EdgeFlag(tab, vfmt->EdgeFlag); > + } > > _mesa_install_eval_vtxfmt(tab, vfmt); > > - SET_FogCoordfEXT(tab, vfmt->FogCoordfEXT); > - SET_FogCoordfvEXT(tab, vfmt->FogCoordfvEXT); > - SET_Indexf(tab, vfmt->Indexf); > - SET_Indexfv(tab, vfmt->Indexfv); > - SET_Materialfv(tab, vfmt->Materialfv); > - SET_MultiTexCoord1fARB(tab, vfmt->MultiTexCoord1fARB); > - SET_MultiTexCoord1fvARB(tab, vfmt->MultiTexCoord1fvARB); > - SET_MultiTexCoord2fARB(tab, vfmt->MultiTexCoord2fARB); > - SET_MultiTexCoord2fvARB(tab, vfmt->MultiTexCoord2fvARB); > - SET_MultiTexCoord3fARB(tab, vfmt->MultiTexCoord3fARB); > - SET_MultiTexCoord3fvARB(tab, vfmt->MultiTexCoord3fvARB); > - SET_MultiTexCoord4fARB(tab, vfmt->MultiTexCoord4fARB); > - SET_MultiTexCoord4fvARB(tab, vfmt->MultiTexCoord4fvARB); > - SET_Normal3f(tab, vfmt->Normal3f); > - SET_Normal3fv(tab, vfmt->Normal3fv); > - SET_SecondaryColor3fEXT(tab, vfmt->SecondaryColor3fEXT); > - SET_SecondaryColor3fvEXT(tab, vfmt->SecondaryColor3fvEXT); > - SET_TexCoord1f(tab, vfmt->TexCoord1f); > - SET_TexCoord1fv(tab, vfmt->TexCoord1fv); > - SET_TexCoord2f(tab, vfmt->TexCoord2f); > - SET_TexCoord2fv(tab, vfmt->TexCoord2fv); > - SET_TexCoord3f(tab, vfmt->TexCoord3f); > - SET_TexCoord3fv(tab, vfmt->TexCoord3fv); > - SET_TexCoord4f(tab, vfmt->TexCoord4f); > - SET_TexCoord4fv(tab, vfmt->TexCoord4fv); > - SET_Vertex2f(tab, vfmt->Vertex2f); > - SET_Vertex2fv(tab, vfmt->Vertex2fv); > - SET_Vertex3f(tab, vfmt->Vertex3f); > - SET_Vertex3fv(tab, vfmt->Vertex3fv); > - SET_Vertex4f(tab, vfmt->Vertex4f); > - SET_Vertex4fv(tab, vfmt->Vertex4fv); > + if (ctx->API != API_OPENGL_CORE) { > + SET_FogCoordfEXT(tab, vfmt->FogCoordfEXT); > + SET_FogCoordfvEXT(tab, vfmt->FogCoordfvEXT); > + SET_Indexf(tab, vfmt->Indexf); > + SET_Indexfv(tab, vfmt->Indexfv); > + SET_Materialfv(tab, vfmt->Materialfv); > + SET_MultiTexCoord1fARB(tab, vfmt->MultiTexCoord1fARB); > + SET_MultiTexCoord1fvARB(tab, vfmt->MultiTexCoord1fvARB); > + SET_MultiTexCoord2fARB(tab, vfmt->MultiTexCoord2fARB); > + SET_MultiTexCoord2fvARB(tab, vfmt->MultiTexCoord2fvARB); > + SET_MultiTexCoord3fARB(tab, vfmt->MultiTexCoord3fARB); > + SET_MultiTexCoord3fvARB(tab, vfmt->MultiTexCoord3fvARB); > + SET_MultiTexCoord4fARB(tab, vfmt->MultiTexCoord4fARB); > + SET_MultiTexCoord4fvARB(tab, vfmt->MultiTexCoord4fvARB); > + SET_Normal3f(tab, vfmt->Normal3f); > + SET_Normal3fv(tab, vfmt->Normal3fv); > + SET_SecondaryColor3fEXT(tab, vfmt->SecondaryColor3fEXT); > + SET_SecondaryColor3fvEXT(tab, vfmt->SecondaryColor3fvEXT); > + SET_TexCoord1f(tab, vfmt->TexCoord1f); > + SET_TexCoord1fv(tab, vfmt->TexCoord1fv); > + SET_TexCoord2f(tab, vfmt->TexCoord2f); > + SET_TexCoord2fv(tab, vfmt->TexCoord2fv); > + SET_TexCoord3f(tab, vfmt->TexCoord3f); > + SET_TexCoord3fv(tab, vfmt->TexCoord3fv); > + SET_TexCoord4f(tab, vfmt->TexCoord4f); > + SET_TexCoord4fv(tab, vfmt->TexCoord4fv); > + SET_Vertex2f(tab, vfmt->Vertex2f); > + SET_Vertex2fv(tab, vfmt->Vertex2fv); > + SET_Vertex3f(tab, vfmt->Vertex3f); > + SET_Vertex3fv(tab, vfmt->Vertex3fv); > + SET_Vertex4f(tab, vfmt->Vertex4f); > + SET_Vertex4fv(tab, vfmt->Vertex4fv); > + } > > _mesa_install_dlist_vtxfmt(tab, vfmt); /* glCallList / glCallLists */ > > - SET_Begin(tab, vfmt->Begin); > - SET_End(tab, vfmt->End); > - SET_PrimitiveRestartNV(tab, vfmt->PrimitiveRestartNV); > + if (ctx->API != API_OPENGL_CORE) { > + SET_Begin(tab, vfmt->Begin); > + SET_End(tab, vfmt->End); > + SET_PrimitiveRestartNV(tab, vfmt->PrimitiveRestartNV); > > - SET_Rectf(tab, vfmt->Rectf); > + SET_Rectf(tab, vfmt->Rectf); > + } > > SET_DrawArrays(tab, vfmt->DrawArrays); > SET_DrawElements(tab, vfmt->DrawElements); > @@ -154,42 +161,44 @@ install_vtxfmt( struct _glapi_table *tab, const > GLvertexformat *vfmt ) > SET_VertexAttribI3uivEXT(tab, vfmt->VertexAttribI3uiv); > SET_VertexAttribI4uivEXT(tab, vfmt->VertexAttribI4uiv); > > - /* GL_ARB_vertex_type_10_10_10_2_rev / GL 3.3 */ > - SET_VertexP2ui(tab, vfmt->VertexP2ui); > - SET_VertexP2uiv(tab, vfmt->VertexP2uiv); > - SET_VertexP3ui(tab, vfmt->VertexP3ui); > - SET_VertexP3uiv(tab, vfmt->VertexP3uiv); > - SET_VertexP4ui(tab, vfmt->VertexP4ui); > - SET_VertexP4uiv(tab, vfmt->VertexP4uiv); > - > - SET_TexCoordP1ui(tab, vfmt->TexCoordP1ui); > - SET_TexCoordP1uiv(tab, vfmt->TexCoordP1uiv); > - SET_TexCoordP2ui(tab, vfmt->TexCoordP2ui); > - SET_TexCoordP2uiv(tab, vfmt->TexCoordP2uiv); > - SET_TexCoordP3ui(tab, vfmt->TexCoordP3ui); > - SET_TexCoordP3uiv(tab, vfmt->TexCoordP3uiv); > - SET_TexCoordP4ui(tab, vfmt->TexCoordP4ui); > - SET_TexCoordP4uiv(tab, vfmt->TexCoordP4uiv); > - > - SET_MultiTexCoordP1ui(tab, vfmt->MultiTexCoordP1ui); > - SET_MultiTexCoordP2ui(tab, vfmt->MultiTexCoordP2ui); > - SET_MultiTexCoordP3ui(tab, vfmt->MultiTexCoordP3ui); > - SET_MultiTexCoordP4ui(tab, vfmt->MultiTexCoordP4ui); > - SET_MultiTexCoordP1uiv(tab, vfmt->MultiTexCoordP1uiv); > - SET_MultiTexCoordP2uiv(tab, vfmt->MultiTexCoordP2uiv); > - SET_MultiTexCoordP3uiv(tab, vfmt->MultiTexCoordP3uiv); > - SET_MultiTexCoordP4uiv(tab, vfmt->MultiTexCoordP4uiv); > - > - SET_NormalP3ui(tab, vfmt->NormalP3ui); > - SET_NormalP3uiv(tab, vfmt->NormalP3uiv); > - > - SET_ColorP3ui(tab, vfmt->ColorP3ui); > - SET_ColorP4ui(tab, vfmt->ColorP4ui); > - SET_ColorP3uiv(tab, vfmt->ColorP3uiv); > - SET_ColorP4uiv(tab, vfmt->ColorP4uiv); > - > - SET_SecondaryColorP3ui(tab, vfmt->SecondaryColorP3ui); > - SET_SecondaryColorP3uiv(tab, vfmt->SecondaryColorP3uiv); > + if (ctx->API != API_OPENGL_CORE) { > + /* GL_ARB_vertex_type_10_10_10_2_rev / GL 3.3 */ > + SET_VertexP2ui(tab, vfmt->VertexP2ui); > + SET_VertexP2uiv(tab, vfmt->VertexP2uiv); > + SET_VertexP3ui(tab, vfmt->VertexP3ui); > + SET_VertexP3uiv(tab, vfmt->VertexP3uiv); > + SET_VertexP4ui(tab, vfmt->VertexP4ui); > + SET_VertexP4uiv(tab, vfmt->VertexP4uiv); > + > + SET_TexCoordP1ui(tab, vfmt->TexCoordP1ui); > + SET_TexCoordP1uiv(tab, vfmt->TexCoordP1uiv); > + SET_TexCoordP2ui(tab, vfmt->TexCoordP2ui); > + SET_TexCoordP2uiv(tab, vfmt->TexCoordP2uiv); > + SET_TexCoordP3ui(tab, vfmt->TexCoordP3ui); > + SET_TexCoordP3uiv(tab, vfmt->TexCoordP3uiv); > + SET_TexCoordP4ui(tab, vfmt->TexCoordP4ui); > + SET_TexCoordP4uiv(tab, vfmt->TexCoordP4uiv); > + > + SET_MultiTexCoordP1ui(tab, vfmt->MultiTexCoordP1ui); > + SET_MultiTexCoordP2ui(tab, vfmt->MultiTexCoordP2ui); > + SET_MultiTexCoordP3ui(tab, vfmt->MultiTexCoordP3ui); > + SET_MultiTexCoordP4ui(tab, vfmt->MultiTexCoordP4ui); > + SET_MultiTexCoordP1uiv(tab, vfmt->MultiTexCoordP1uiv); > + SET_MultiTexCoordP2uiv(tab, vfmt->MultiTexCoordP2uiv); > + SET_MultiTexCoordP3uiv(tab, vfmt->MultiTexCoordP3uiv); > + SET_MultiTexCoordP4uiv(tab, vfmt->MultiTexCoordP4uiv); > + > + SET_NormalP3ui(tab, vfmt->NormalP3ui); > + SET_NormalP3uiv(tab, vfmt->NormalP3uiv); > + > + SET_ColorP3ui(tab, vfmt->ColorP3ui); > + SET_ColorP4ui(tab, vfmt->ColorP4ui); > + SET_ColorP3uiv(tab, vfmt->ColorP3uiv); > + SET_ColorP4uiv(tab, vfmt->ColorP4uiv); > + > + SET_SecondaryColorP3ui(tab, vfmt->SecondaryColorP3ui); > + SET_SecondaryColorP3uiv(tab, vfmt->SecondaryColorP3uiv); > + } > > SET_VertexAttribP1ui(tab, vfmt->VertexAttribP1ui); > SET_VertexAttribP2ui(tab, vfmt->VertexAttribP2ui); > @@ -210,7 +219,7 @@ void > _mesa_install_exec_vtxfmt(struct gl_context *ctx, const GLvertexformat *vfmt) > { > if (_mesa_is_desktop_gl(ctx)) > - install_vtxfmt( ctx->Exec, vfmt ); > + install_vtxfmt( ctx, ctx->Exec, vfmt ); > } > > > @@ -222,7 +231,7 @@ void > _mesa_install_save_vtxfmt(struct gl_context *ctx, const GLvertexformat *vfmt) > { > if (_mesa_is_desktop_gl(ctx)) > - install_vtxfmt( ctx->Save, vfmt ); > + install_vtxfmt( ctx, ctx->Save, vfmt ); > } > > > -- > 1.7.9.5 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev