glapi: add ARB_gpu_shader_fp64 (v2)

Just add the xml file covering this extension,
and dummy interface files in mesa, and fix up
sanity tests.

v2:
Enable ProgramUniform*d* from ARB_separate_shader_objects (Ian)
use 40 instead of 43 for dispatch_sanity.cpp (Chris)
uncomment PU sanity tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Dave Airlie 2014-06-11 13:17:36 +10:00 committed by Ilia Mirkin
parent 069dab7576
commit 3c915e5c16
7 changed files with 465 additions and 37 deletions

View file

@ -0,0 +1,143 @@
<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
<OpenGLAPI>
<category name="GL_ARB_gpu_shader_fp64" number="89">
<function name="Uniform1d" offset="assign">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
</function>
<function name="Uniform2d" offset="assign">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
</function>
<function name="Uniform3d" offset="assign">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
</function>
<function name="Uniform4d" offset="assign">
<param name="location" type="GLint"/>
<param name="x" type="GLdouble"/>
<param name="y" type="GLdouble"/>
<param name="z" type="GLdouble"/>
<param name="w" type="GLdouble"/>
</function>
<function name="Uniform1dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="Uniform2dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="Uniform3dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="Uniform4dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix2dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix3dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix4dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix2x3dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix2x4dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix3x2dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix3x4dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix4x2dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="UniformMatrix4x3dv" offset="assign">
<param name="location" type="GLint"/>
<param name="count" type="GLsizei"/>
<param name="transpose" type="GLboolean"/>
<param name="value" type="const GLdouble *"/>
</function>
<function name="GetUniformdv" offset="assign">
<param name="program" type="GLuint"/>
<param name="location" type="GLint"/>
<param name="params" type="GLdouble *"/>
</function>
<enum name="DOUBLE_VEC2" value="0x8FFC"/>
<enum name="DOUBLE_VEC3" value="0x8FFD"/>
<enum name="DOUBLE_VEC4" value="0x8FFE"/>
<enum name="DOUBLE_MAT2" value="0x8F46"/>
<enum name="DOUBLE_MAT3" value="0x8F47"/>
<enum name="DOUBLE_MAT4" value="0x8F48"/>
<enum name="DOUBLE_MAT2x3" value="0x8F49"/>
<enum name="DOUBLE_MAT2x4" value="0x8F4A"/>
<enum name="DOUBLE_MAT3x2" value="0x8F4B"/>
<enum name="DOUBLE_MAT3x4" value="0x8F4C"/>
<enum name="DOUBLE_MAT4x2" value="0x8F4D"/>
<enum name="DOUBLE_MAT4x3" value="0x8F4E"/>
</category>
</OpenGLAPI>

View file

@ -282,7 +282,6 @@
<param name="infoLog" type="GLchar *" />
</function>
<!-- depends on GL_ARB_gpu_shader_fp64
<function name="ProgramUniform1d" offset="assign" static_dispatch="false">
<param name="program" type="GLuint" />
<param name="location" type="GLint" />
@ -396,6 +395,5 @@
<param name="count" type="GLsizei" />
<param name="value" type="const GLdouble *" />
</function>
-->
</category>
</OpenGLAPI>

View file

@ -132,6 +132,7 @@ API_XML = \
ARB_framebuffer_object.xml \
ARB_geometry_shader4.xml \
ARB_get_program_binary.xml \
ARB_gpu_shader_fp64.xml \
ARB_gpu_shader5.xml \
ARB_instanced_arrays.xml \
ARB_internalformat_query.xml \

View file

@ -8213,6 +8213,8 @@
<xi:include href="ARB_gpu_shader5.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<xi:include href="ARB_gpu_shader_fp64.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<category name="GL_ARB_transform_feedback3" number="94">
<enum name="MAX_TRANSFORM_FEEDBACK_BUFFERS" value="0x8E70"/>
<enum name="MAX_VERTEX_STREAMS" value="0x8E71"/>

View file

@ -669,24 +669,24 @@ const struct function gl_core_functions_possible[] = {
{ "glVertexAttribP4uiv", 43, -1 },
{ "glDrawArraysIndirect", 43, -1 },
{ "glDrawElementsIndirect", 43, -1 },
// { "glUniform1d", 43, -1 }, // XXX: Add to xml
// { "glUniform2d", 43, -1 }, // XXX: Add to xml
// { "glUniform3d", 43, -1 }, // XXX: Add to xml
// { "glUniform4d", 43, -1 }, // XXX: Add to xml
// { "glUniform1dv", 43, -1 }, // XXX: Add to xml
// { "glUniform2dv", 43, -1 }, // XXX: Add to xml
// { "glUniform3dv", 43, -1 }, // XXX: Add to xml
// { "glUniform4dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix2dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix3dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix4dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix2x3dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix2x4dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix3x2dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix3x4dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix4x2dv", 43, -1 }, // XXX: Add to xml
// { "glUniformMatrix4x3dv", 43, -1 }, // XXX: Add to xml
// { "glGetUniformdv", 43, -1 }, // XXX: Add to xml
{ "glUniform1d", 40, -1 },
{ "glUniform2d", 40, -1 },
{ "glUniform3d", 40, -1 },
{ "glUniform4d", 40, -1 },
{ "glUniform1dv", 40, -1 },
{ "glUniform2dv", 40, -1 },
{ "glUniform3dv", 40, -1 },
{ "glUniform4dv", 40, -1 },
{ "glUniformMatrix2dv", 40, -1 },
{ "glUniformMatrix3dv", 40, -1 },
{ "glUniformMatrix4dv", 40, -1 },
{ "glUniformMatrix2x3dv", 40, -1 },
{ "glUniformMatrix2x4dv", 40, -1 },
{ "glUniformMatrix3x2dv", 40, -1 },
{ "glUniformMatrix3x4dv", 40, -1 },
{ "glUniformMatrix4x2dv", 40, -1 },
{ "glUniformMatrix4x3dv", 40, -1 },
{ "glGetUniformdv", 43, -1 },
// { "glGetSubroutineUniformLocation", 43, -1 }, // XXX: Add to xml
// { "glGetSubroutineIndex", 43, -1 }, // XXX: Add to xml
// { "glGetActiveSubroutineUniformiv", 43, -1 }, // XXX: Add to xml
@ -728,52 +728,52 @@ const struct function gl_core_functions_possible[] = {
{ "glProgramUniform1iv", 43, -1 },
{ "glProgramUniform1f", 43, -1 },
{ "glProgramUniform1fv", 43, -1 },
// { "glProgramUniform1d", 43, -1 }, // XXX: Add to xml
// { "glProgramUniform1dv", 43, -1 }, // XXX: Add to xml
{ "glProgramUniform1d", 40, -1 },
{ "glProgramUniform1dv", 40, -1 },
{ "glProgramUniform1ui", 43, -1 },
{ "glProgramUniform1uiv", 43, -1 },
{ "glProgramUniform2i", 43, -1 },
{ "glProgramUniform2iv", 43, -1 },
{ "glProgramUniform2f", 43, -1 },
{ "glProgramUniform2fv", 43, -1 },
// { "glProgramUniform2d", 43, -1 }, // XXX: Add to xml
// { "glProgramUniform2dv", 43, -1 }, // XXX: Add to xml
{ "glProgramUniform2d", 40, -1 },
{ "glProgramUniform2dv", 40, -1 },
{ "glProgramUniform2ui", 43, -1 },
{ "glProgramUniform2uiv", 43, -1 },
{ "glProgramUniform3i", 43, -1 },
{ "glProgramUniform3iv", 43, -1 },
{ "glProgramUniform3f", 43, -1 },
{ "glProgramUniform3fv", 43, -1 },
// { "glProgramUniform3d", 43, -1 }, // XXX: Add to xml
// { "glProgramUniform3dv", 43, -1 }, // XXX: Add to xml
{ "glProgramUniform3d", 40, -1 },
{ "glProgramUniform3dv", 40, -1 },
{ "glProgramUniform3ui", 43, -1 },
{ "glProgramUniform3uiv", 43, -1 },
{ "glProgramUniform4i", 43, -1 },
{ "glProgramUniform4iv", 43, -1 },
{ "glProgramUniform4f", 43, -1 },
{ "glProgramUniform4fv", 43, -1 },
// { "glProgramUniform4d", 43, -1 }, // XXX: Add to xml
// { "glProgramUniform4dv", 43, -1 }, // XXX: Add to xml
{ "glProgramUniform4d", 40, -1 },
{ "glProgramUniform4dv", 40, -1 },
{ "glProgramUniform4ui", 43, -1 },
{ "glProgramUniform4uiv", 43, -1 },
{ "glProgramUniformMatrix2fv", 43, -1 },
{ "glProgramUniformMatrix3fv", 43, -1 },
{ "glProgramUniformMatrix4fv", 43, -1 },
// { "glProgramUniformMatrix2dv", 43, -1 }, // XXX: Add to xml
// { "glProgramUniformMatrix3dv", 43, -1 }, // XXX: Add to xml
// { "glProgramUniformMatrix4dv", 43, -1 }, // XXX: Add to xml
{ "glProgramUniformMatrix2dv", 40, -1 },
{ "glProgramUniformMatrix3dv", 40, -1 },
{ "glProgramUniformMatrix4dv", 40, -1 },
{ "glProgramUniformMatrix2x3fv", 43, -1 },
{ "glProgramUniformMatrix3x2fv", 43, -1 },
{ "glProgramUniformMatrix2x4fv", 43, -1 },
{ "glProgramUniformMatrix4x2fv", 43, -1 },
{ "glProgramUniformMatrix3x4fv", 43, -1 },
{ "glProgramUniformMatrix4x3fv", 43, -1 },
// { "glProgramUniformMatrix2x3dv", 43, -1 }, // XXX: Add to xml
// { "glProgramUniformMatrix3x2dv", 43, -1 }, // XXX: Add to xml
// { "glProgramUniformMatrix2x4dv", 43, -1 }, // XXX: Add to xml
// { "glProgramUniformMatrix4x2dv", 43, -1 }, // XXX: Add to xml
// { "glProgramUniformMatrix3x4dv", 43, -1 }, // XXX: Add to xml
// { "glProgramUniformMatrix4x3dv", 43, -1 }, // XXX: Add to xml
{ "glProgramUniformMatrix2x3dv", 40, -1 },
{ "glProgramUniformMatrix3x2dv", 40, -1 },
{ "glProgramUniformMatrix2x4dv", 40, -1 },
{ "glProgramUniformMatrix4x2dv", 40, -1 },
{ "glProgramUniformMatrix3x4dv", 40, -1 },
{ "glProgramUniformMatrix4x3dv", 40, -1 },
{ "glValidateProgramPipeline", 43, -1 },
{ "glGetProgramPipelineInfoLog", 43, -1 },
// { "glVertexAttribL1d", 43, -1 }, // XXX: Add to xml

View file

@ -1338,3 +1338,198 @@ _mesa_GetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex,
return;
}
}
void GLAPIENTRY
_mesa_Uniform1d(GLint location, GLdouble v0)
{
}
void GLAPIENTRY
_mesa_Uniform2d(GLint location, GLdouble v0, GLdouble v1)
{
}
void GLAPIENTRY
_mesa_Uniform3d(GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
{
}
void GLAPIENTRY
_mesa_Uniform4d(GLint location, GLdouble v0, GLdouble v1, GLdouble v2,
GLdouble v3)
{
}
void GLAPIENTRY
_mesa_Uniform1dv(GLint location, GLsizei count, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_Uniform2dv(GLint location, GLsizei count, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_Uniform3dv(GLint location, GLsizei count, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_Uniform4dv(GLint location, GLsizei count, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value)
{
}
void GLAPIENTRY
_mesa_UniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value)
{
}
void GLAPIENTRY
_mesa_ProgramUniform1d(GLuint program, GLint location, GLdouble v0)
{
}
void GLAPIENTRY
_mesa_ProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1)
{
}
void GLAPIENTRY
_mesa_ProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1,
GLdouble v2)
{
}
void GLAPIENTRY
_mesa_ProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1,
GLdouble v2, GLdouble v3)
{
}
void GLAPIENTRY
_mesa_ProgramUniform1dv(GLuint program, GLint location, GLsizei count,
const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniform2dv(GLuint program, GLint location, GLsizei count,
const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniform3dv(GLuint program, GLint location, GLsizei count,
const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniform4dv(GLuint program, GLint location, GLsizei count,
const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}
void GLAPIENTRY
_mesa_ProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble * value)
{
}

View file

@ -254,6 +254,95 @@ _mesa_GetActiveUniformsiv(GLuint program,
void GLAPIENTRY
_mesa_GetUniformiv(GLuint, GLint, GLint *);
void GLAPIENTRY
_mesa_Uniform1d(GLint, GLdouble);
void GLAPIENTRY
_mesa_Uniform2d(GLint, GLdouble, GLdouble);
void GLAPIENTRY
_mesa_Uniform3d(GLint, GLdouble, GLdouble, GLdouble);
void GLAPIENTRY
_mesa_Uniform4d(GLint, GLdouble, GLdouble, GLdouble, GLdouble);
void GLAPIENTRY
_mesa_Uniform1dv(GLint, GLsizei, const GLdouble *);
void GLAPIENTRY
_mesa_Uniform2dv(GLint, GLsizei, const GLdouble *);
void GLAPIENTRY
_mesa_Uniform3dv(GLint, GLsizei, const GLdouble *);
void GLAPIENTRY
_mesa_Uniform4dv(GLint, GLsizei, const GLdouble *);
void GLAPIENTRY
_mesa_UniformMatrix2dv(GLint, GLsizei, GLboolean, const GLdouble *);
void GLAPIENTRY
_mesa_UniformMatrix3dv(GLint, GLsizei, GLboolean, const GLdouble *);
void GLAPIENTRY
_mesa_UniformMatrix4dv(GLint, GLsizei, GLboolean, const GLdouble *);
void GLAPIENTRY
_mesa_UniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
void GLAPIENTRY
_mesa_UniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
void GLAPIENTRY
_mesa_UniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
void GLAPIENTRY
_mesa_UniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
void GLAPIENTRY
_mesa_UniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
void GLAPIENTRY
_mesa_UniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose,
const GLdouble *value);
void GLAPIENTRY
_mesa_ProgramUniform1d(GLuint program, GLint, GLdouble);
void GLAPIENTRY
_mesa_ProgramUniform2d(GLuint program, GLint, GLdouble, GLdouble);
void GLAPIENTRY
_mesa_ProgramUniform3d(GLuint program, GLint, GLdouble, GLdouble, GLdouble);
void GLAPIENTRY
_mesa_ProgramUniform4d(GLuint program, GLint, GLdouble, GLdouble, GLdouble, GLdouble);
void GLAPIENTRY
_mesa_ProgramUniform1dv(GLuint program, GLint, GLsizei, const GLdouble *);
void GLAPIENTRY
_mesa_ProgramUniform2dv(GLuint program, GLint, GLsizei, const GLdouble *);
void GLAPIENTRY
_mesa_ProgramUniform3dv(GLuint program, GLint, GLsizei, const GLdouble *);
void GLAPIENTRY
_mesa_ProgramUniform4dv(GLuint program, GLint, GLsizei, const GLdouble *);
void GLAPIENTRY
_mesa_ProgramUniformMatrix2dv(GLuint program, GLint, GLsizei, GLboolean,
const GLdouble *);
void GLAPIENTRY
_mesa_ProgramUniformMatrix3dv(GLuint program, GLint, GLsizei, GLboolean,
const GLdouble *);
void GLAPIENTRY
_mesa_ProgramUniformMatrix4dv(GLuint program, GLint, GLsizei, GLboolean,
const GLdouble *);
void GLAPIENTRY
_mesa_ProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble *value);
void GLAPIENTRY
_mesa_ProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble *value);
void GLAPIENTRY
_mesa_ProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble *value);
void GLAPIENTRY
_mesa_ProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble *value);
void GLAPIENTRY
_mesa_ProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble *value);
void GLAPIENTRY
_mesa_ProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count,
GLboolean transpose, const GLdouble *value);
long
_mesa_parse_program_resource_name(const GLchar *name,
const GLchar **out_base_name_end);