Hello; Here's the v2 implementation of ARB_program_interface_query extension. I have addressed errors found by Ilia Mirkin in his review and there are several small fixes here and there for bugs revealed with Martin's Piglit tests.
Patches add a resource list as part of gl_shader_program which contains all different resources. List is then used to implement extension functions as well as following existing queries: GetActiveAttrib GetAttribLocation GetUniformLocation GetActiveUniformName GetUniformIndices GetActiveUniform GetActiveUniformsiv GetUniformBlockIndex GetActiveUniformBlockName GetActiveUniformBlockiv GetActiveAtomicCounterBufferiv GetTransformFeedbackVarying GetFragDataLocation GetFragDataIndex No Piglit regressions with these changes. There are Piglit tests for the extension in the Piglit mailing list, all of these pass: http://lists.freedesktop.org/archives/piglit/2015-April/015457.html Extension specification: https://www.opengl.org/registry/specs/ARB/program_interface_query.txt Git branch with all the patches: http://cgit.freedesktop.org/~tpalli/mesa/log/?h=piq Thanks; Tapani Pälli (24): linker: fix varying linking if SSO program has only gs and fs glapi: add GL_ARB_program_interface_query skeleton mesa/glsl: build list of program resources during linking mesa: glGetProgramInterfaceiv mesa: glGetProgramResourceIndex mesa: glGetProgramResourceName mesa: glGetProgramResourceLocation mesa: glGetProgramResourceLocationIndex mesa: implementation of glGetProgramResourceiv mesa: enable GL_ARB_program_interface_query extension mesa: refactor GetActiveAttrib mesa: refactor GetAttribLocation mesa: refactor GetFragDataLocation mesa: refactor GetFragDataIndex mesa: mesa_bufferiv utility function for buffer objects mesa: refactor GetActiveUniformsiv, use _mesa_program_resource_prop mesa: refactor GetTransformFeedbackVarying mesa: refactor GetActiveUniform mesa: refactor GetActiveUniformName mesa: remove unused _mesa_get_uniform_name mesa: refactor GetActiveUniformBlockName mesa: refactor GetUniformLocation mesa: refactor GetUniformIndices mesa: refactor GetUniformBlockIndex docs/GL3.txt | 4 +- docs/relnotes/10.6.0.html | 1 + src/glsl/linker.cpp | 211 +++++- src/mapi/glapi/gen/ARB_program_interface_query.xml | 109 +++ src/mapi/glapi/gen/gl_API.xml | 4 +- src/mapi/glapi/gen/gl_genexec.py | 1 + src/mesa/Makefile.sources | 2 + src/mesa/main/extensions.c | 1 + src/mesa/main/mtypes.h | 14 + src/mesa/main/program_resource.c | 417 +++++++++++ src/mesa/main/program_resource.h | 58 ++ src/mesa/main/shader_query.cpp | 764 ++++++++++++++++++--- src/mesa/main/shaderapi.h | 45 ++ src/mesa/main/shaderobj.c | 6 + src/mesa/main/tests/dispatch_sanity.cpp | 12 +- src/mesa/main/transformfeedback.c | 19 +- src/mesa/main/uniform_query.cpp | 138 ++-- src/mesa/main/uniforms.c | 294 +++----- src/mesa/main/uniforms.h | 5 - 19 files changed, 1687 insertions(+), 418 deletions(-) create mode 100644 src/mapi/glapi/gen/ARB_program_interface_query.xml create mode 100644 src/mesa/main/program_resource.c create mode 100644 src/mesa/main/program_resource.h -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev