mesa: add EXT_dsa EnableVertexArrayAttribEXT / DisableVertexArrayAttribEXT
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Fri, 25 Oct 2019 14:11:21 +0000 (16:11 +0200)
committerPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Tue, 5 Nov 2019 12:58:28 +0000 (13:58 +0100)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mapi/glapi/gen/EXT_direct_state_access.xml
src/mapi/glapi/gen/static_data.py
src/mesa/main/tests/dispatch_sanity.cpp
src/mesa/main/varray.c
src/mesa/main/varray.h

index 145d3b92c8e2b0cb8312e7900d9590a47f7c5c0a..6c2dcedd6452f5d1722dcf9be2d4fda72dd33acf 100644 (file)
       <param name="array" type="GLenum" />
    </function>
 
+   <function name="EnableVertexArrayAttribEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="index" type="GLuint" />
+   </function>
+
+   <function name="DisableVertexArrayAttribEXT">
+      <param name="vaobj" type="GLuint" />
+      <param name="index" type="GLuint" />
+   </function>
+
    <!-- ARB_vertex_program -->
    <function name="NamedProgramStringEXT">
       <param name="program" type="GLuint" />
index 28ef42c12aa8450c03999aa41e37b8ab4ae3e75f..0bf2377f739d4c79e06b4aa62f2d69831b0dc836 100644 (file)
@@ -1610,6 +1610,8 @@ offsets = {
     "VertexArrayVertexAttribIOffsetEXT": 1574,
     "EnableVertexArrayEXT": 1575,
     "DisableVertexArrayEXT": 1576,
+    "EnableVertexArrayAttribEXT": 1577,
+    "DisableVertexArrayAttribEXT": 1578,
 }
 
 functions = [
index c58c294356302a9f79c20450911894cb3457ccd8..b7629bb1a96ee6e6ef1bbf04e8a15505fcd6629f 100644 (file)
@@ -1182,8 +1182,8 @@ const struct function common_desktop_functions_possible[] = {
    { "glVertexArrayVertexAttribIOffsetEXT", 30, -1 },
    { "glEnableVertexArrayEXT", 30, -1 },
    { "glDisableVertexArrayEXT", 30, -1 },
-   //{ "glEnableVertexArrayAttribEXT", 30, -1 },
-   //{ "glDisableVertexArrayAttribEXT", 30, -1 },
+   { "glEnableVertexArrayAttribEXT", 30, -1 },
+   { "glDisableVertexArrayAttribEXT", 30, -1 },
    //{ "glGetVertexArrayIntegervEXT", 30, -1 },
    //{ "glGetVertexArrayPointervEXT", 30, -1 },
    //{ "glGetVertexArrayIntegeri_vEXT", 30, -1 },
index 1696e7e953ef60c756794f06424f14fe421f98c3..4b197dba82624d9e32f978552ff0a4c81b82cfcd 100644 (file)
@@ -1612,6 +1612,19 @@ _mesa_EnableVertexArrayAttrib(GLuint vaobj, GLuint index)
    enable_vertex_array_attrib(ctx, vao, index, "glEnableVertexArrayAttrib");
 }
 
+void GLAPIENTRY
+_mesa_EnableVertexArrayAttribEXT(GLuint vaobj, GLuint index)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   struct gl_vertex_array_object* vao = _mesa_lookup_vao_err(ctx, vaobj,
+                                                             true,
+                                                             "glEnableVertexArrayAttribEXT");
+   if (!vao)
+      return;
+
+   enable_vertex_array_attrib(ctx, vao, index, "glEnableVertexArrayAttribEXT");
+}
+
 
 void GLAPIENTRY
 _mesa_EnableVertexArrayAttrib_no_error(GLuint vaobj, GLuint index)
@@ -1694,6 +1707,25 @@ _mesa_DisableVertexArrayAttrib(GLuint vaobj, GLuint index)
    _mesa_disable_vertex_array_attrib(ctx, vao, attrib);
 }
 
+void GLAPIENTRY
+_mesa_DisableVertexArrayAttribEXT(GLuint vaobj, GLuint index)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   struct gl_vertex_array_object* vao = _mesa_lookup_vao_err(ctx, vaobj,
+                                                             true,
+                                                             "glEnableVertexArrayAttribEXT");
+   if (!vao)
+      return;
+
+   if (index >= ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs) {
+      _mesa_error(ctx, GL_INVALID_VALUE, "glDisableVertexArrayAttrib(index)");
+      return;
+   }
+
+   const gl_vert_attrib attrib = VERT_ATTRIB_GENERIC(index);
+   _mesa_disable_vertex_array_attrib(ctx, vao, attrib);
+}
+
 
 void GLAPIENTRY
 _mesa_DisableVertexArrayAttrib_no_error(GLuint vaobj, GLuint index)
index 89fc669033086edd69f703b571508846326e73e1..2955e8bd03f5b3246aaf1fe54fd58133f1e399d2 100644 (file)
@@ -238,6 +238,8 @@ _mesa_EnableVertexArrayAttrib(GLuint vaobj, GLuint index);
 extern void GLAPIENTRY
 _mesa_EnableVertexArrayAttrib_no_error(GLuint vaobj, GLuint index);
 
+extern void GLAPIENTRY
+_mesa_EnableVertexArrayAttribEXT( GLuint vaobj, GLuint index );
 
 
 extern void GLAPIENTRY
@@ -253,6 +255,8 @@ _mesa_DisableVertexArrayAttrib(GLuint vaobj, GLuint index);
 extern void GLAPIENTRY
 _mesa_DisableVertexArrayAttrib_no_error(GLuint vaobj, GLuint index);
 
+extern void GLAPIENTRY
+_mesa_DisableVertexArrayAttribEXT( GLuint vaobj, GLuint index );
 
 extern void GLAPIENTRY
 _mesa_GetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params);