On 23/05/17 03:26, Ian Romanick wrote:
WTF?  I gave review feedback on IRC, and you said you were going to send
a different patch... yet this patch landed.  If you're not going to take
review feedback, why do you ask for it
idr> tarceri: You should be able to just put the functions back in the XML and 'exec="skip"' to the functions. <idr> tarceri: That will let libGL have entry points, but the drivers don't need to know anything about them. idr> The real test is to see if a *_dri.so built before your original patch loads on a libGL built with later patches.

As I mentioned in the other thread I took your advice and tested an old branch but could not get it to fail. Given that I couldn't reproduce the failure, and you seem to be very busy (which sometimes results in Mesa inquiries to you going missing) I decided to push this version before I forgot about the problem.

Maybe I should have just sent the other patch and waited on feedback but it honestly didn't seem like a big deal.


On 05/18/2017 07:50 PM, Timothy Arceri wrote:
APPLE_vertex_array_object support was removed in 7927d0378fc7.
However it turns out we can't remove the functions because this
can cause issues when libglapi is used together with DRI1 drivers
which were branched off from master a few years ago.
---
  src/mapi/glapi/gen/APPLE_vertex_array_object.xml | 27 ++++++++++++++++++++++++
  src/mapi/glapi/gen/Makefile.am                   |  1 +
  src/mapi/glapi/gen/gl_API.xml                    |  2 +-
  src/mapi/glapi/tests/check_table.cpp             |  2 ++
  src/mesa/main/arrayobj.c                         | 16 ++++++++++++++
  src/mesa/main/arrayobj.h                         |  4 ++++
  src/mesa/main/tests/dispatch_sanity.cpp          |  2 ++
  7 files changed, 53 insertions(+), 1 deletion(-)
  create mode 100644 src/mapi/glapi/gen/APPLE_vertex_array_object.xml

diff --git a/src/mapi/glapi/gen/APPLE_vertex_array_object.xml 
b/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
new file mode 100644
index 0000000..7312f9b
--- /dev/null
+++ b/src/mapi/glapi/gen/APPLE_vertex_array_object.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<OpenGLAPI>
+<category name="GL_APPLE_vertex_array_object" number="273">
+    <enum name="VERTEX_ARRAY_BINDING_APPLE"               value="0x85B5"/>
+
+    <function name="BindVertexArrayAPPLE" deprecated="3.1">
+        <param name="array" type="GLuint"/>
+    </function>
+
+    <function name="DeleteVertexArraysAPPLE" alias="DeleteVertexArrays">
+        <param name="n" type="GLsizei"/>
+       <param name="arrays" type="const GLuint *"/>
+    </function>
+
+    <function name="GenVertexArraysAPPLE" deprecated="3.1">
+        <param name="n" type="GLsizei"/>
+       <param name="arrays" type="GLuint *" count="n" output="true"/>
+    </function>
+
+    <function name="IsVertexArrayAPPLE" alias="IsVertexArray">
+        <param name="array" type="GLuint"/>
+       <return type="GLboolean"/>
+    </function>
+</category>
+</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am
index ecd1c71..33139bd 100644
--- a/src/mapi/glapi/gen/Makefile.am
+++ b/src/mapi/glapi/gen/Makefile.am
@@ -182,20 +182,21 @@ API_XML = \
        ARB_texture_view.xml \
        ARB_uniform_buffer_object.xml \
        ARB_vertex_array_object.xml \
        ARB_vertex_attrib_64bit.xml \
        ARB_vertex_attrib_binding.xml \
        ARB_viewport_array.xml \
        AMD_draw_buffers_blend.xml \
        AMD_performance_monitor.xml \
        ARB_vertex_type_2_10_10_10_rev.xml \
        APPLE_object_purgeable.xml \
+       APPLE_vertex_array_object.xml \
        EXT_draw_buffers2.xml \
        EXT_framebuffer_object.xml \
        EXT_gpu_shader4.xml \
        EXT_packed_depth_stencil.xml \
        EXT_provoking_vertex.xml \
        EXT_separate_shader_objects.xml \
        EXT_texture_array.xml \
        EXT_texture_integer.xml \
        EXT_transform_feedback.xml \
        EXT_window_rectangles.xml \
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 762fb5a..630d6b8 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -12524,21 +12524,21 @@
          <size name="Get" mode="get"/>
      </enum>
<function name="ActiveStencilFaceEXT" deprecated="3.1">
          <param name="face" type="GLenum"/>
          <glx rop="4220"/>
      </function>
  </category>
<xi:include href="APPLE_object_purgeable.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-<!-- Extension number 273 obsolete APPLE_vertex_array_object. -->
+<xi:include href="APPLE_vertex_array_object.xml" 
xmlns:xi="http://www.w3.org/2001/XInclude"/>
<category name="GL_APPLE_ycbcr_422" number="275">
      <enum name="YCBCR_422_APPLE"                          value="0x85B9"/>
      <enum name="UNSIGNED_SHORT_8_8_APPLE"                 value="0x85BA"/>
      <enum name="UNSIGNED_SHORT_8_8_REV_APPLE"             value="0x85BB"/>
  </category>
<category name="GL_S3_s3tc" number="276">
      <enum name="RGB_S3TC"                                 value="0x83A0"/>
      <enum name="RGB4_S3TC"                                value="0x83A1"/>
diff --git a/src/mapi/glapi/tests/check_table.cpp 
b/src/mapi/glapi/tests/check_table.cpp
index a1041bce..09bf4f3 100644
--- a/src/mapi/glapi/tests/check_table.cpp
+++ b/src/mapi/glapi/tests/check_table.cpp
@@ -1397,21 +1397,23 @@ const struct name_offset known_dispatch[] = {
     { "glColorFragmentOp3ATI", _O(ColorFragmentOp3ATI) },
     { "glDeleteFragmentShaderATI", _O(DeleteFragmentShaderATI) },
     { "glEndFragmentShaderATI", _O(EndFragmentShaderATI) },
     { "glGenFragmentShadersATI", _O(GenFragmentShadersATI) },
     { "glPassTexCoordATI", _O(PassTexCoordATI) },
     { "glSampleMapATI", _O(SampleMapATI) },
     { "glSetFragmentShaderConstantATI", _O(SetFragmentShaderConstantATI) },
     { "glPointParameteri", _O(PointParameteri) },
     { "glPointParameteriv", _O(PointParameteriv) },
     { "glActiveStencilFaceEXT", _O(ActiveStencilFaceEXT) },
+   { "glBindVertexArrayAPPLE", _O(BindVertexArrayAPPLE) },
     { "glDeleteVertexArrays", _O(DeleteVertexArrays) },
+   { "glGenVertexArraysAPPLE", _O(GenVertexArraysAPPLE) },
     { "glIsVertexArray", _O(IsVertexArray) },
     { "glGetProgramNamedParameterdvNV", _O(GetProgramNamedParameterdvNV) },
     { "glGetProgramNamedParameterfvNV", _O(GetProgramNamedParameterfvNV) },
     { "glProgramNamedParameter4dNV", _O(ProgramNamedParameter4dNV) },
     { "glProgramNamedParameter4dvNV", _O(ProgramNamedParameter4dvNV) },
     { "glProgramNamedParameter4fNV", _O(ProgramNamedParameter4fNV) },
     { "glProgramNamedParameter4fvNV", _O(ProgramNamedParameter4fvNV) },
     { "glPrimitiveRestartIndex", _O(PrimitiveRestartIndex) },
     { "glPrimitiveRestartNV", _O(PrimitiveRestartNV) },
     { "glDepthBoundsEXT", _O(DepthBoundsEXT) },
diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c
index 82c00fb..b986229 100644
--- a/src/mesa/main/arrayobj.c
+++ b/src/mesa/main/arrayobj.c
@@ -466,20 +466,28 @@ _mesa_BindVertexArray( GLuint id )
         */
        ctx->Array._DrawArrays = NULL;
        ctx->Array.DrawMethod = DRAW_NONE;
     }
ctx->NewState |= _NEW_ARRAY;
     _mesa_reference_vao(ctx, &ctx->Array.VAO, newObj);
  }
+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.
   *
   * \param n      Number of array objects to delete.
   * \param ids    Array of \c n array object IDs.
   */
  void GLAPIENTRY
  _mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids)
  {
     GET_CURRENT_CONTEXT(ctx);
@@ -572,20 +580,28 @@ gen_vertex_arrays(struct gl_context *ctx, GLsizei n, 
GLuint *arrays,
   * All arrays will be required to live in VBOs.
   */
  void GLAPIENTRY
  _mesa_GenVertexArrays(GLsizei n, GLuint *arrays)
  {
     GET_CURRENT_CONTEXT(ctx);
     gen_vertex_arrays(ctx, n, arrays, false, "glGenVertexArrays");
  }
+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.
   */
  void GLAPIENTRY
  _mesa_CreateVertexArrays(GLsizei n, GLuint *arrays)
  {
     GET_CURRENT_CONTEXT(ctx);
     gen_vertex_arrays(ctx, n, arrays, true, "glCreateVertexArrays");
  }
diff --git a/src/mesa/main/arrayobj.h b/src/mesa/main/arrayobj.h
index 1794968..097027b 100644
--- a/src/mesa/main/arrayobj.h
+++ b/src/mesa/main/arrayobj.h
@@ -89,23 +89,27 @@ _mesa_all_varyings_in_vbos(const struct 
gl_vertex_array_object *vao);
  extern bool
  _mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao);
/*
   * API functions
   */
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 ); void GLAPIENTRY _mesa_VertexArrayElementBuffer(GLuint vaobj, GLuint buffer); void GLAPIENTRY _mesa_GetVertexArrayiv(GLuint vaobj, GLenum pname, GLint *param); #endif /* ARRAYOBJ_H */
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp 
b/src/mesa/main/tests/dispatch_sanity.cpp
index b33043e..12a9ee7 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -962,20 +962,22 @@ const struct function common_desktop_functions_possible[] 
= {
     { "glBlendBarrierKHR", 20, -1 },
/* GL_ARB_sparse_buffer */
     { "glBufferPageCommitmentARB", 43, -1 },
     { "glNamedBufferPageCommitmentARB", 43, -1 },
{ NULL, 0, -1 }
  };
const struct function gl_compatibility_functions_possible[] = {
+   { "glBindVertexArrayAPPLE", 10, -1 },
+   { "glGenVertexArraysAPPLE", 10, -1 },
     { "glBindRenderbufferEXT", 10, -1 },
     { "glBindFramebufferEXT", 10, -1 },
     { "glNewList", 10, _gloffset_NewList },
     { "glEndList", 10, _gloffset_EndList },
     { "glCallList", 10, _gloffset_CallList },
     { "glCallLists", 10, _gloffset_CallLists },
     { "glDeleteLists", 10, _gloffset_DeleteLists },
     { "glGenLists", 10, _gloffset_GenLists },
     { "glListBase", 10, _gloffset_ListBase },
     { "glBegin", 10, _gloffset_Begin },


_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to