From 6655e70f99f5b6314103d28a19d0e53410650ee9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fredrik=20H=C3=B6glund?= Date: Wed, 13 Nov 2013 19:02:10 +0100 Subject: [PATCH] glapi: Add infrastructure for ARB_multi_bind Reviewed-by: Brian Paul Reviewed-by: Ian Romanick --- src/mapi/glapi/gen/ARB_multi_bind.xml | 53 +++++++++++++++++++++++++ src/mapi/glapi/gen/Makefile.am | 1 + src/mapi/glapi/gen/gl_API.xml | 4 ++ src/mesa/main/bufferobj.c | 13 ++++++ src/mesa/main/bufferobj.h | 7 ++++ src/mesa/main/samplerobj.c | 6 +++ src/mesa/main/samplerobj.h | 2 + src/mesa/main/shaderimage.c | 5 +++ src/mesa/main/shaderimage.h | 3 ++ src/mesa/main/tests/dispatch_sanity.cpp | 8 ++++ src/mesa/main/texobj.c | 6 +++ src/mesa/main/texobj.h | 4 ++ src/mesa/main/varray.c | 7 ++++ src/mesa/main/varray.h | 4 ++ 14 files changed, 123 insertions(+) create mode 100644 src/mapi/glapi/gen/ARB_multi_bind.xml diff --git a/src/mapi/glapi/gen/ARB_multi_bind.xml b/src/mapi/glapi/gen/ARB_multi_bind.xml new file mode 100644 index 00000000000..4f2f2a2596b --- /dev/null +++ b/src/mapi/glapi/gen/ARB_multi_bind.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am index 6b932e73f2f..35cf924da08 100644 --- a/src/mapi/glapi/gen/Makefile.am +++ b/src/mapi/glapi/gen/Makefile.am @@ -133,6 +133,7 @@ API_XML = \ ARB_internalformat_query.xml \ ARB_invalidate_subdata.xml \ ARB_map_buffer_range.xml \ + ARB_multi_bind.xml \ ARB_robustness.xml \ ARB_sample_shading.xml \ ARB_sampler_objects.xml \ diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 9200cd68d7e..46640397bcc 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -8341,6 +8341,10 @@ + + + + diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 36acd64ce70..65fa740a438 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -2770,6 +2770,19 @@ _mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer) } } +void GLAPIENTRY +_mesa_BindBuffersRange(GLenum target, GLuint first, GLsizei count, + const GLuint *buffers, + const GLintptr *offsets, const GLsizeiptr *sizes) +{ +} + +void GLAPIENTRY +_mesa_BindBuffersBase(GLenum target, GLuint first, GLsizei count, + const GLuint *buffers) +{ +} + void GLAPIENTRY _mesa_InvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length) diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h index c08c4fdf2af..e1b2a565a98 100644 --- a/src/mesa/main/bufferobj.h +++ b/src/mesa/main/bufferobj.h @@ -209,6 +209,13 @@ _mesa_BindBufferRange(GLenum target, GLuint index, void GLAPIENTRY _mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer); +void GLAPIENTRY +_mesa_BindBuffersRange(GLenum target, GLuint first, GLsizei count, + const GLuint *buffers, + const GLintptr *offsets, const GLsizeiptr *sizes); +void GLAPIENTRY +_mesa_BindBuffersBase(GLenum target, GLuint first, GLsizei count, + const GLuint *buffers); void GLAPIENTRY _mesa_InvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length); diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c index 4900d525680..575724049ab 100644 --- a/src/mesa/main/samplerobj.c +++ b/src/mesa/main/samplerobj.c @@ -285,6 +285,12 @@ _mesa_BindSampler(GLuint unit, GLuint sampler) } +void GLAPIENTRY +_mesa_BindSamplers(GLuint first, GLsizei count, const GLuint *samplers) +{ +} + + /** * Check if a coordinate wrap mode is legal. * \return GL_TRUE if legal, GL_FALSE otherwise diff --git a/src/mesa/main/samplerobj.h b/src/mesa/main/samplerobj.h index c72b1cd8d89..7d80b383d74 100644 --- a/src/mesa/main/samplerobj.h +++ b/src/mesa/main/samplerobj.h @@ -81,6 +81,8 @@ _mesa_IsSampler(GLuint sampler); void GLAPIENTRY _mesa_BindSampler(GLuint unit, GLuint sampler); void GLAPIENTRY +_mesa_BindSamplers(GLuint first, GLsizei count, const GLuint *samplers); +void GLAPIENTRY _mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param); void GLAPIENTRY _mesa_SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param); diff --git a/src/mesa/main/shaderimage.c b/src/mesa/main/shaderimage.c index d1e752d3df6..f77f2c6c2ba 100644 --- a/src/mesa/main/shaderimage.c +++ b/src/mesa/main/shaderimage.c @@ -478,6 +478,11 @@ _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level, layer, access, format); } +void GLAPIENTRY +_mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures) +{ +} + void GLAPIENTRY _mesa_MemoryBarrier(GLbitfield barriers) { diff --git a/src/mesa/main/shaderimage.h b/src/mesa/main/shaderimage.h index aaecc5d2994..733ac774777 100644 --- a/src/mesa/main/shaderimage.h +++ b/src/mesa/main/shaderimage.h @@ -45,6 +45,9 @@ _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +void GLAPIENTRY +_mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures); + void GLAPIENTRY _mesa_MemoryBarrier(GLbitfield barriers); diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp index 8ff975fe5ac..b777352a5f7 100644 --- a/src/mesa/main/tests/dispatch_sanity.cpp +++ b/src/mesa/main/tests/dispatch_sanity.cpp @@ -882,6 +882,14 @@ const struct function gl_core_functions_possible[] = { /* GL_ARB_internalformat_query */ { "glGetInternalformativ", 30, -1 }, + /* GL_ARB_multi_bind */ + { "glBindBuffersBase", 44, -1 }, + { "glBindBuffersRange", 44, -1 }, + { "glBindTextures", 44, -1 }, + { "glBindSamplers", 44, -1 }, + { "glBindImageTextures", 44, -1 }, + { "glBindVertexBuffers", 44, -1 }, + /* GL_KHR_debug/GL_ARB_debug_output */ { "glPushDebugGroup", 11, -1 }, { "glPopDebugGroup", 11, -1 }, diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 43cf1c5c5a1..38be9ee56dd 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -1373,6 +1373,12 @@ _mesa_BindTexture( GLenum target, GLuint texName ) } +void GLAPIENTRY +_mesa_BindTextures(GLuint first, GLsizei count, const GLuint *textures) +{ +} + + /** * Set texture priorities. * diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h index a9de73fff83..25394b6195f 100644 --- a/src/mesa/main/texobj.h +++ b/src/mesa/main/texobj.h @@ -176,6 +176,10 @@ extern void GLAPIENTRY _mesa_BindTexture( GLenum target, GLuint texture ); +extern void GLAPIENTRY +_mesa_BindTextures( GLuint first, GLsizei count, const GLuint *textures ); + + extern void GLAPIENTRY _mesa_PrioritizeTextures( GLsizei n, const GLuint *textures, const GLclampf *priorities ); diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index 81f71f8265e..d7dc2325879 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -1439,6 +1439,13 @@ _mesa_BindVertexBuffer(GLuint bindingIndex, GLuint buffer, GLintptr offset, } +void GLAPIENTRY +_mesa_BindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, + const GLintptr *offsets, const GLsizei *strides) +{ +} + + void GLAPIENTRY _mesa_VertexAttribFormat(GLuint attribIndex, GLint size, GLenum type, GLboolean normalized, GLuint relativeOffset) diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h index d10f78e64a3..f94ebac9920 100644 --- a/src/mesa/main/varray.h +++ b/src/mesa/main/varray.h @@ -306,6 +306,10 @@ extern void GLAPIENTRY _mesa_BindVertexBuffer(GLuint bindingIndex, GLuint buffer, GLintptr offset, GLsizei stride); +extern void GLAPIENTRY +_mesa_BindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, + const GLintptr *offsets, const GLsizei *strides); + extern void GLAPIENTRY _mesa_VertexAttribFormat(GLuint attribIndex, GLint size, GLenum type, GLboolean normalized, GLuint relativeOffset); -- 2.30.2