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

Tapani Pälli tapani.palli at intel.com
Wed Apr 1 05:14:16 PDT 2015


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



More information about the mesa-dev mailing list