summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFredrik Höglund <[email protected]>2013-11-13 19:02:10 +0100
committerFredrik Höglund <[email protected]>2014-05-02 02:53:25 +0200
commit6655e70f99f5b6314103d28a19d0e53410650ee9 (patch)
tree0af24908ebd927cd74ea01a74ab348855086bffd /src
parent82291f64e378825e1c716742fc215db99fc8cbb2 (diff)
glapi: Add infrastructure for ARB_multi_bind
Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mapi/glapi/gen/ARB_multi_bind.xml53
-rw-r--r--src/mapi/glapi/gen/Makefile.am1
-rw-r--r--src/mapi/glapi/gen/gl_API.xml4
-rw-r--r--src/mesa/main/bufferobj.c13
-rw-r--r--src/mesa/main/bufferobj.h7
-rw-r--r--src/mesa/main/samplerobj.c6
-rw-r--r--src/mesa/main/samplerobj.h2
-rw-r--r--src/mesa/main/shaderimage.c5
-rw-r--r--src/mesa/main/shaderimage.h3
-rw-r--r--src/mesa/main/tests/dispatch_sanity.cpp8
-rw-r--r--src/mesa/main/texobj.c6
-rw-r--r--src/mesa/main/texobj.h4
-rw-r--r--src/mesa/main/varray.c7
-rw-r--r--src/mesa/main/varray.h4
14 files changed, 123 insertions, 0 deletions
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 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<!-- Note: no GLX protocol info yet. -->
+
+<OpenGLAPI>
+
+<category name="GL_ARB_multi_bind" number="147">
+
+ <function name="BindBuffersBase" offset="assign">
+ <param name="target" type="GLenum"/>
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="buffers" type="const GLuint *"/>
+ </function>
+
+ <function name="BindBuffersRange" offset="assign">
+ <param name="target" type="GLenum"/>
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="buffers" type="const GLuint *"/>
+ <param name="offsets" type="const GLintptr *"/>
+ <param name="sizes" type="const GLsizeiptr *"/>
+ </function>
+
+ <function name="BindTextures" offset="assign">
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="textures" type="const GLuint *"/>
+ </function>
+
+ <function name="BindSamplers" offset="assign">
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="samplers" type="const GLuint *"/>
+ </function>
+
+ <function name="BindImageTextures" offset="assign">
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="textures" type="const GLuint *"/>
+ </function>
+
+ <function name="BindVertexBuffers" offset="assign">
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="buffers" type="const GLuint *"/>
+ <param name="offsets" type="const GLintptr *"/>
+ <param name="strides" type="const GLsizei *"/>
+ </function>
+
+</category>
+</OpenGLAPI>
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 @@
</function>
</category>
+<!-- ARB extensions #145...#146 -->
+
+<xi:include href="ARB_multi_bind.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
<!-- Non-ARB extensions sorted by extension number. -->
<category name="GL_EXT_blend_color" number="2">
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
@@ -2771,6 +2771,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
@@ -210,6 +210,13 @@ 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
@@ -479,6 +479,11 @@ _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level,
}
void GLAPIENTRY
+_mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures)
+{
+}
+
+void GLAPIENTRY
_mesa_MemoryBarrier(GLbitfield barriers)
{
GET_CURRENT_CONTEXT(ctx);
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
@@ -46,6 +46,9 @@ _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level,
GLenum format);
void GLAPIENTRY
+_mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures);
+
+void GLAPIENTRY
_mesa_MemoryBarrier(GLbitfield barriers);
#endif
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
@@ -177,6 +177,10 @@ _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
@@ -1440,6 +1440,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
@@ -307,6 +307,10 @@ _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);