From: Dave Airlie <airl...@redhat.com> Just add the xml file covering this extension, and dummy interface files in mesa, and fix up sanity tests.
Signed-off-by: Dave Airlie <airl...@redhat.com> --- src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml | 143 +++++++++++++++++++++++++++++ src/mapi/glapi/gen/Makefile.am | 1 + src/mapi/glapi/gen/gl_API.xml | 2 + src/mesa/main/tests/dispatch_sanity.cpp | 36 ++++---- src/mesa/main/uniforms.c | 95 +++++++++++++++++++ src/mesa/main/uniforms.h | 43 +++++++++ 6 files changed, 302 insertions(+), 18 deletions(-) create mode 100644 src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml diff --git a/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml b/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml new file mode 100644 index 0000000..4f860ef --- /dev/null +++ b/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml @@ -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> + diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am index 645def4..9471986 100644 --- a/src/mapi/glapi/gen/Makefile.am +++ b/src/mapi/glapi/gen/Makefile.am @@ -131,6 +131,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 \ diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 619717d..235b894 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -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"/> diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp index 04fa86b..12fc0de 100644 --- a/src/mesa/main/tests/dispatch_sanity.cpp +++ b/src/mesa/main/tests/dispatch_sanity.cpp @@ -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", 43, -1 }, + { "glUniform2d", 43, -1 }, + { "glUniform3d", 43, -1 }, + { "glUniform4d", 43, -1 }, + { "glUniform1dv", 43, -1 }, + { "glUniform2dv", 43, -1 }, + { "glUniform3dv", 43, -1 }, + { "glUniform4dv", 43, -1 }, + { "glUniformMatrix2dv", 43, -1 }, + { "glUniformMatrix3dv", 43, -1 }, + { "glUniformMatrix4dv", 43, -1 }, + { "glUniformMatrix2x3dv", 43, -1 }, + { "glUniformMatrix2x4dv", 43, -1 }, + { "glUniformMatrix3x2dv", 43, -1 }, + { "glUniformMatrix3x4dv", 43, -1 }, + { "glUniformMatrix4x2dv", 43, -1 }, + { "glUniformMatrix4x3dv", 43, -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 diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c index 0d0cbf5..6bd7e42 100644 --- a/src/mesa/main/uniforms.c +++ b/src/mesa/main/uniforms.c @@ -1324,3 +1324,98 @@ _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) +{ +} diff --git a/src/mesa/main/uniforms.h b/src/mesa/main/uniforms.h index e7a370e..ea9f729 100644 --- a/src/mesa/main/uniforms.h +++ b/src/mesa/main/uniforms.h @@ -254,6 +254,49 @@ _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); + long _mesa_parse_program_resource_name(const GLchar *name, const GLchar **out_base_name_end); -- 1.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev