glapi: add ARB_indirect_parameters definitions

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Ilia Mirkin 2015-12-31 15:19:51 -05:00
parent 7ca67c752b
commit b3e2c21fe5
7 changed files with 63 additions and 1 deletions

View file

@ -0,0 +1,30 @@
<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
<OpenGLAPI>
<category name="GL_ARB_draw_indirect" number="154">
<enum name="PARAMETER_BUFFER_ARB" value="0x80EE"/>
<enum name="PARAMETER_BUFFER_BINDING_ARB" value="0x80EF"/>
<function name="MultiDrawArraysIndirectCountARB" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="indirect" type="GLintptr"/>
<param name="drawcount" type="GLintptr"/>
<param name="maxdrawcount" type="GLsizei"/>
<param name="stride" type="GLsizei"/>
</function>
<function name="MultiDrawElementsIndirectCountARB" exec="dynamic">
<param name="mode" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="indirect" type="GLintptr"/>
<param name="drawcount" type="GLintptr"/>
<param name="maxdrawcount" type="GLsizei"/>
<param name="stride" type="GLsizei"/>
</function>
</category>
</OpenGLAPI>

View file

@ -137,6 +137,7 @@ API_XML = \
ARB_get_texture_sub_image.xml \
ARB_gpu_shader_fp64.xml \
ARB_gpu_shader5.xml \
ARB_indirect_parameters.xml \
ARB_instanced_arrays.xml \
ARB_internalformat_query.xml \
ARB_invalidate_subdata.xml \

View file

@ -8247,7 +8247,11 @@
<xi:include href="ARB_multi_bind.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<!-- ARB extensions 148 - 159 -->
<!-- ARB extensions 148 - 153 -->
<xi:include href="ARB_indirect_parameters.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<!-- ARB extensions 155 - 159 -->
<xi:include href="ARB_clip_control.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

View file

@ -70,6 +70,7 @@ EXT(ARB_gpu_shader5 , ARB_gpu_shader5
EXT(ARB_gpu_shader_fp64 , ARB_gpu_shader_fp64 , x , GLC, x , x , 2010)
EXT(ARB_half_float_pixel , dummy_true , GLL, GLC, x , x , 2003)
EXT(ARB_half_float_vertex , ARB_half_float_vertex , GLL, GLC, x , x , 2008)
EXT(ARB_indirect_parameters , ARB_indirect_parameters , x , GLC, x , x , 2013)
EXT(ARB_instanced_arrays , ARB_instanced_arrays , GLL, GLC, x , x , 2008)
EXT(ARB_internalformat_query , ARB_internalformat_query , GLL, GLC, x , x , 2011)
EXT(ARB_invalidate_subdata , dummy_true , GLL, GLC, x , x , 2012)

View file

@ -3700,6 +3700,7 @@ struct gl_extensions
GLboolean ARB_gpu_shader5;
GLboolean ARB_gpu_shader_fp64;
GLboolean ARB_half_float_vertex;
GLboolean ARB_indirect_parameters;
GLboolean ARB_instanced_arrays;
GLboolean ARB_internalformat_query;
GLboolean ARB_map_buffer_range;

View file

@ -1844,6 +1844,10 @@ const struct function gl_core_functions_possible[] = {
{ "glGetQueryBufferObjecti64v", 45, -1 },
{ "glGetQueryBufferObjectui64v", 45, -1 },
/* GL_ARB_indirect_parameters */
{ "glMultiDrawArraysIndirectCountARB", 31, -1 },
{ "glMultiDrawElementsIndirectCountARB", 31, -1 },
{ NULL, 0, -1 }
};

View file

@ -1732,6 +1732,25 @@ vbo_exec_MultiDrawElementsIndirect(GLenum mode, GLenum type,
primcount, stride);
}
static void GLAPIENTRY
vbo_exec_MultiDrawArraysIndirectCount(GLenum mode,
GLintptr indirect,
GLintptr drawcount,
GLsizei maxdrawcount, GLsizei stride)
{
}
static void GLAPIENTRY
vbo_exec_MultiDrawElementsIndirectCount(GLenum mode, GLenum type,
GLintptr indirect,
GLintptr drawcount,
GLsizei maxdrawcount, GLsizei stride)
{
}
/**
* Initialize the dispatch table with the VBO functions for drawing.
*/
@ -1779,6 +1798,8 @@ vbo_initialize_exec_dispatch(const struct gl_context *ctx,
if (ctx->API == API_OPENGL_CORE) {
SET_MultiDrawArraysIndirect(exec, vbo_exec_MultiDrawArraysIndirect);
SET_MultiDrawElementsIndirect(exec, vbo_exec_MultiDrawElementsIndirect);
SET_MultiDrawArraysIndirectCountARB(exec, vbo_exec_MultiDrawArraysIndirectCount);
SET_MultiDrawElementsIndirectCountARB(exec, vbo_exec_MultiDrawElementsIndirectCount);
}
if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {