mesa: Remove GL_APPLE_vertex_array_object stubs
authorIan Romanick <ian.d.romanick@intel.com>
Mon, 22 May 2017 18:14:32 +0000 (11:14 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 23 May 2017 22:02:29 +0000 (15:02 -0700)
Mark the functions 'exec="skip"' in the XML instead.  libGL will still
have the functions, but the driver won't try to use them.  I verified
that this commit works with piglit's 'object-namespace-pollution glClear
vertex-array' on x64 with a driver built from mesa-12.0.3 tag.

In fairness, this test also works with a libGL built from 7927d03.  I
believe it continues to work because on non-Windows platforms we
generate some extra, dummy dispatch functions that can be used when a
driver requests a function unknown to libGL.  This was done to provide
some "forward" compatibility with drivers that need more functions.
This doesn't work on Windows because the Windows calling convention is
for the callee to clean up the stack.  That's the theory anyway.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/mapi/glapi/gen/APPLE_vertex_array_object.xml
src/mesa/main/arrayobj.c
src/mesa/main/arrayobj.h
src/mesa/main/tests/dispatch_sanity.cpp

index 7312f9b35f05af21eb7909d0374525df89378bf9..daf6990ea8a8e12928af5023189c34f24347850c 100644 (file)
@@ -5,21 +5,21 @@
 <category name="GL_APPLE_vertex_array_object" number="273">
     <enum name="VERTEX_ARRAY_BINDING_APPLE"               value="0x85B5"/>
 
-    <function name="BindVertexArrayAPPLE" deprecated="3.1">
+    <function name="BindVertexArrayAPPLE" deprecated="3.1" exec="skip">
         <param name="array" type="GLuint"/>
     </function>
 
-    <function name="DeleteVertexArraysAPPLE" alias="DeleteVertexArrays">
+    <function name="DeleteVertexArraysAPPLE" exec="skip">
         <param name="n" type="GLsizei"/>
        <param name="arrays" type="const GLuint *"/>
     </function>
 
-    <function name="GenVertexArraysAPPLE" deprecated="3.1">
+    <function name="GenVertexArraysAPPLE" deprecated="3.1" exec="skip">
         <param name="n" type="GLsizei"/>
        <param name="arrays" type="GLuint *" count="n" output="true"/>
     </function>
 
-    <function name="IsVertexArrayAPPLE" alias="IsVertexArray">
+    <function name="IsVertexArrayAPPLE" exec="skip">
         <param name="array" type="GLuint"/>
        <return type="GLboolean"/>
     </function>
index b98622932c5939f3b1ead0b96ae7ef6ddace9983..82c00fbe82643f43316146dc18dceb7073e7f6a9 100644 (file)
@@ -473,14 +473,6 @@ _mesa_BindVertexArray( GLuint id )
 }
 
 
-void GLAPIENTRY
-_mesa_BindVertexArrayAPPLE(GLuint id)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   _mesa_problem(ctx, "APPLE_vertex_array_object is not supported!");
-}
-
-
 /**
  * Delete a set of array objects.
  *
@@ -587,14 +579,6 @@ _mesa_GenVertexArrays(GLsizei n, GLuint *arrays)
 }
 
 
-void GLAPIENTRY
-_mesa_GenVertexArraysAPPLE(GLsizei n, GLuint *arrays)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   _mesa_problem(ctx, "APPLE_vertex_array_object is not supported!");
-}
-
-
 /**
  * ARB_direct_state_access
  * Generates ID's and creates the array objects.
index 097027ba97c60fac26bde3bbf418fc2166f6b915..17949685775eaf4657a58f4bb254b4d6c8d96bc4 100644 (file)
@@ -96,14 +96,10 @@ _mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao);
 
 void GLAPIENTRY _mesa_BindVertexArray( GLuint id );
 
-void GLAPIENTRY _mesa_BindVertexArrayAPPLE(GLuint id);
-
 void GLAPIENTRY _mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids);
 
 void GLAPIENTRY _mesa_GenVertexArrays(GLsizei n, GLuint *arrays);
 
-void GLAPIENTRY _mesa_GenVertexArraysAPPLE(GLsizei n, GLuint *buffer);
-
 void GLAPIENTRY _mesa_CreateVertexArrays(GLsizei n, GLuint *arrays);
 
 GLboolean GLAPIENTRY _mesa_IsVertexArray( GLuint id );
index 12a9ee7bae13028609bb3426cfb868d6de1779cb..b33043ed28b3370b09eb3780690f0eba4f9891a7 100644 (file)
@@ -969,8 +969,6 @@ const struct function common_desktop_functions_possible[] = {
 };
 
 const struct function gl_compatibility_functions_possible[] = {
-   { "glBindVertexArrayAPPLE", 10, -1 },
-   { "glGenVertexArraysAPPLE", 10, -1 },
    { "glBindRenderbufferEXT", 10, -1 },
    { "glBindFramebufferEXT", 10, -1 },
    { "glNewList", 10, _gloffset_NewList },