From eec5c01b5efc1ab81bfe1af15855e17e852ed4a3 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Fri, 18 May 2018 13:23:15 +1000 Subject: [PATCH] mesa: add support for glNamedBufferStorageEXT MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This is available in ARB_buffer_storage when EXT_direct_state_access is present. Reviewed-by: Marek Olšák Signed-off-by: Marek Olšák --- src/mapi/glapi/gen/gl_API.xml | 7 +++++++ src/mapi/glapi/gen/static_data.py | 1 + src/mesa/main/bufferobj.c | 15 +++++++++++++++ src/mesa/main/bufferobj.h | 3 +++ src/mesa/main/tests/dispatch_sanity.cpp | 1 + 5 files changed, 27 insertions(+) diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index ca7ac95ded0..60ae1aaa0db 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -8271,6 +8271,13 @@ + + + + + + + diff --git a/src/mapi/glapi/gen/static_data.py b/src/mapi/glapi/gen/static_data.py index 92a07abd9db..582530c046a 100644 --- a/src/mapi/glapi/gen/static_data.py +++ b/src/mapi/glapi/gen/static_data.py @@ -1476,6 +1476,7 @@ offsets = { "BindMultiTextureEXT": 1440, "NamedBufferDataEXT": 1441, "NamedBufferSubDataEXT": 1442, + "NamedBufferStorageEXT": 1443, } functions = [ diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 6b8a2111a8f..0d350dbabd5 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -1937,6 +1937,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 0fba8d19fe3..c789a2d513b 100644 --- a/src/mesa/main/tests/dispatch_sanity.cpp +++ b/src/mesa/main/tests/dispatch_sanity.cpp @@ -1295,6 +1295,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.30.2