Mesa (master): mesa: add EXT_dsa EnableVertexArrayAttribEXT / DisableVertexArrayAttribEXT
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Nov 5 13:52:08 UTC 2019
Module: Mesa
Branch: master
Commit: 5adeff80339e00b8cfe3d8df4d403fb48c569aa3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5adeff80339e00b8cfe3d8df4d403fb48c569aa3
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date: Fri Oct 25 16:11:21 2019 +0200
mesa: add EXT_dsa EnableVertexArrayAttribEXT / DisableVertexArrayAttribEXT
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
---
src/mapi/glapi/gen/EXT_direct_state_access.xml | 10 ++++++++
src/mapi/glapi/gen/static_data.py | 2 ++
src/mesa/main/tests/dispatch_sanity.cpp | 4 ++--
src/mesa/main/varray.c | 32 ++++++++++++++++++++++++++
src/mesa/main/varray.h | 4 ++++
5 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/src/mapi/glapi/gen/EXT_direct_state_access.xml b/src/mapi/glapi/gen/EXT_direct_state_access.xml
index 145d3b92c8e..6c2dcedd645 100644
--- a/src/mapi/glapi/gen/EXT_direct_state_access.xml
+++ b/src/mapi/glapi/gen/EXT_direct_state_access.xml
@@ -1160,6 +1160,16 @@
<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" />
diff --git a/src/mapi/glapi/gen/static_data.py b/src/mapi/glapi/gen/static_data.py
index 28ef42c12aa..0bf2377f739 100644
--- a/src/mapi/glapi/gen/static_data.py
+++ b/src/mapi/glapi/gen/static_data.py
@@ -1610,6 +1610,8 @@ offsets = {
"VertexArrayVertexAttribIOffsetEXT": 1574,
"EnableVertexArrayEXT": 1575,
"DisableVertexArrayEXT": 1576,
+ "EnableVertexArrayAttribEXT": 1577,
+ "DisableVertexArrayAttribEXT": 1578,
}
functions = [
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index c58c2943563..b7629bb1a96 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -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 },
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index 1696e7e953e..4b197dba826 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -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)
diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h
index 89fc6690330..2955e8bd03f 100644
--- a/src/mesa/main/varray.h
+++ b/src/mesa/main/varray.h
@@ -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);
More information about the mesa-commit
mailing list