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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to