[Mesa-dev] [PATCH v2 00/24] ARB_program_interface_query

Jose Fonseca jfonseca at vmware.com
Thu Apr 16 02:32:42 PDT 2015


I took the liberty to push a follow-up change to rename `interface` to 
`program `programInterface`.

`interface` caused build failures on Windows, as it is a define -- an 
alias for `struct` keyword, used when declaring COM interfaces in C or C++.

I chose `programInterface` to match the the name name used in 
GL_ARB_program_interface_query spec/headers (which was in fact chosen 
like that for the very same reason).

This is my commit:

 
http://cgit.freedesktop.org/mesa/mesa/commit/?id=037e0e78abf0c312f737d33f3c33e37b22bf226d

Even `programInterface` was the chosen name in the extension, I admit is 
a tad long.  I just want to fix the build asap, but if you prefer to 
rename to something smaller (e.g, `iface`) I'm happy to do it too.

Jose


On 01/04/15 13:14, Tapani Pälli wrote:
> 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:
>
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_archives_piglit_2015-2DApril_015457.html&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=3w0-sDFs-LVaBLQqNorjQ5rE4obDOogdaHYG8Iosa3M&s=xQYf3XSyViAxeZGMVr3QiQgsl228e0lTG7L_Kli3ctM&e=
>
> Extension specification:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.opengl.org_registry_specs_ARB_program-5Finterface-5Fquery.txt&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=3w0-sDFs-LVaBLQqNorjQ5rE4obDOogdaHYG8Iosa3M&s=exUys8YSrdaLlgkKQs9pcqsRLY7AtjRRk7FyGW4kvno&e=
>
> Git branch with all the patches:
> https://urldefense.proofpoint.com/v2/url?u=http-3A__cgit.freedesktop.org_-7Etpalli_mesa_log_-3Fh-3Dpiq&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=3w0-sDFs-LVaBLQqNorjQ5rE4obDOogdaHYG8Iosa3M&s=GdA-NzXKst7bl3fFT5Lbj622qrZoNeQs4dLu41WJ7zw&e=
>
> 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
>



More information about the mesa-dev mailing list