[Mesa-dev] [PATCH 08/13] mesa: add support for glNamedBufferStorageEXT
Timothy Arceri
tarceri at itsqueeze.com
Sat Sep 8 04:31:29 UTC 2018
This is available in ARB_buffer_storage when
EXT_direct_state_access is present.
---
src/mapi/glapi/gen/gl_API.xml | 7 +++++++
src/mesa/main/bufferobj.c | 15 +++++++++++++++
src/mesa/main/bufferobj.h | 3 +++
src/mesa/main/tests/dispatch_sanity.cpp | 1 +
4 files changed, 26 insertions(+)
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 8403c80eb37..e65b24a1dbb 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -8271,6 +8271,13 @@
<param name="data" type="const GLvoid *"/>
<param name="flags" type="GLbitfield"/>
</function>
+
+ <function name="NamedBufferStorageEXT">
+ <param name="buffer" type="GLuint" />
+ <param name="size" type="GLsizeiptr" />
+ <param name="data" type="const GLvoid *" />
+ <param name="flags" type="GLbitfield" />
+ </function>
</category>
<xi:include href="ARB_clear_texture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
index aa8d7062cb6..de809d31f35 100644
--- a/src/mesa/main/bufferobj.c
+++ b/src/mesa/main/bufferobj.c
@@ -1930,6 +1930,21 @@ _mesa_BufferStorage(GLenum target, GLsizeiptr size, const GLvoid *data,
false, false, false, "glBufferStorage");
}
+void GLAPIENTRY
+_mesa_NamedBufferStorageEXT(GLuint buffer, GLsizeiptr size,
+ const GLvoid *data, GLbitfield flags)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ struct gl_buffer_object *bufObj = _mesa_lookup_bufferobj(ctx, buffer);
+ if (!_mesa_handle_bind_buffer_gen(ctx, buffer,
+ &bufObj, "glNamedBufferStorageEXT"))
+ return;
+
+ inlined_buffer_storage(GL_NONE, buffer, size, data, flags, GL_NONE, 0,
+ true, false, false, "glNamedBufferStorageEXT");
+}
+
void GLAPIENTRY
_mesa_BufferStorageMemEXT(GLenum target, GLsizeiptr size,
diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h
index 74124649bb6..6b35d70606f 100644
--- a/src/mesa/main/bufferobj.h
+++ b/src/mesa/main/bufferobj.h
@@ -189,6 +189,9 @@ void GLAPIENTRY
_mesa_BufferStorage(GLenum target, GLsizeiptr size, const GLvoid *data,
GLbitfield flags);
void GLAPIENTRY
+_mesa_NamedBufferStorageEXT(GLuint buffer, GLsizeiptr size,
+ const GLvoid *data, GLbitfield flags);
+void GLAPIENTRY
_mesa_BufferStorageMemEXT(GLenum target, GLsizeiptr size,
GLuint memory, GLuint64 offset);
void GLAPIENTRY
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index 1b8dec18c20..5a0cdfd78f2 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -1304,6 +1304,7 @@ const struct function common_desktop_functions_possible[] = {
/* GL_ARB_buffer_storage */
{ "glBufferStorage", 43, -1 },
+ { "glNamedBufferStorageEXT", 43, -1 },
/* GL_ARB_clear_texture */
{ "glClearTexImage", 13, -1 },
--
2.17.1
More information about the mesa-dev
mailing list