From 3c915e5c1662f2d9d32bec04033967a5cceeca8f Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 11 Jun 2014 13:17:36 +1000 Subject: [PATCH] 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 Reviewed-by: Ian Romanick Reviewed-by: Ilia Mirkin --- src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml | 143 +++++++++++++ .../glapi/gen/ARB_separate_shader_objects.xml | 2 - src/mapi/glapi/gen/Makefile.am | 1 + src/mapi/glapi/gen/gl_API.xml | 2 + src/mesa/main/tests/dispatch_sanity.cpp | 70 +++---- src/mesa/main/uniforms.c | 195 ++++++++++++++++++ src/mesa/main/uniforms.h | 89 ++++++++ 7 files changed, 465 insertions(+), 37 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 00000000000..4f860ef8c69 --- /dev/null +++ b/src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mapi/glapi/gen/ARB_separate_shader_objects.xml b/src/mapi/glapi/gen/ARB_separate_shader_objects.xml index d006917af70..96ae2b9cb62 100644 --- a/src/mapi/glapi/gen/ARB_separate_shader_objects.xml +++ b/src/mapi/glapi/gen/ARB_separate_shader_objects.xml @@ -282,7 +282,6 @@ - diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am index 28973c49f1c..1c4b86aab6f 100644 --- a/src/mapi/glapi/gen/Makefile.am +++ b/src/mapi/glapi/gen/Makefile.am @@ -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 \ diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml index 41b34014f1d..1ceb60a0f0c 100644 --- a/src/mapi/glapi/gen/gl_API.xml +++ b/src/mapi/glapi/gen/gl_API.xml @@ -8213,6 +8213,8 @@ + + diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp index 1f1a3a842c6..c14ad32eb3e 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", 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 diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c index d2d70e7f7a0..4e3c1abd920 100644 --- a/src/mesa/main/uniforms.c +++ b/src/mesa/main/uniforms.c @@ -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) +{ +} diff --git a/src/mesa/main/uniforms.h b/src/mesa/main/uniforms.h index 0a9ee7de92c..520fbbf7887 100644 --- a/src/mesa/main/uniforms.h +++ b/src/mesa/main/uniforms.h @@ -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); -- 2.30.2