Hi;

Patches implement the extension, no Piglit regressions and all the tests
for the extension pass (I've planned some more tests which are not yet
in though).

Changes shortly:

   - opt_dead_code optimization is modifed to build a list of removed
     uniform locations (that had explicit location) as this information
     is required by the extension. For this I had to modify here and
     there to have gl_shader_program structure available.

   - link_uniforms is modified to first occupy all explicit locations
     and only then the rest (sorry about patch size but I'm having trouble
     to split it smaller)

   - small parser changes, likely needs still more validation checks

I would need some help determining what kind of version checks (gl, glsl)
should be made in the parser for this extension and also should I rather
just enable it for everyone or only for Intel, would be cool if someone
could test this implementation against some other platform.

Also, I'm not sure how to actually get a good MAX_UNIFORM_LOCATIONS
value, current one is just thrown with a dice. For example this is 65536
for Nvidia binary driver (with gtx660) but it feels rather big to
*really* work .. or?

Here's a branch with the patches:
http://cgit.freedesktop.org/~tpalli/mesa/log/?h=exp_uniform_loc

Any comments appreciated, thanks;

// Tapani


Tapani Pälli (13):
  glapi: add GL_ARB_explicit_uniform_location
  mesa: add enable bit for ARB_explicit_uniform_location
  mesa: add new enum MAX_UNIFORM_LOCATIONS and default value
  mesa: add a storage for inactive/removed uniform variables
  glsl: change do_common_optimization signature
  glsl: change do_dead_code signature, store uniform locations
  glsl/linker: change link_assign_uniform_locations signature
  glsl/linker: GL_ARB_explicit_uniform_location support
  mesa: support inactive uniforms in glUniform* functions
  glsl: add enable bit for ARB_explicit_uniform_location
  glsl: parser changes for GL_ARB_explicit_uniform_location
  intel: Enable GL_ARB_explicit_uniform_location
  docs: update ARB_explicit_uniform_location status

 docs/GL3.txt                                 |   2 +-
 src/glsl/ast_to_hir.cpp                      |  13 ++
 src/glsl/glcpp/glcpp-parse.y                 |   3 +
 src/glsl/glsl_lexer.ll                       |   1 +
 src/glsl/glsl_parser_extras.cpp              |  11 +-
 src/glsl/glsl_parser_extras.h                |   2 +
 src/glsl/ir_optimization.h                   |   6 +-
 src/glsl/ir_uniform.h                        |   5 +-
 src/glsl/link_uniforms.cpp                   | 239 ++++++++++++++++++++++++---
 src/glsl/linker.cpp                          |  12 +-
 src/glsl/linker.h                            |   5 +-
 src/glsl/opt_dead_code.cpp                   |  40 ++++-
 src/mapi/glapi/gen/gl_API.xml                |   6 +
 src/mesa/drivers/dri/i965/brw_shader.cpp     |   3 +-
 src/mesa/drivers/dri/i965/intel_extensions.c |   1 +
 src/mesa/main/context.c                      |   3 +
 src/mesa/main/extensions.c                   |   1 +
 src/mesa/main/get.c                          |   1 +
 src/mesa/main/get_hash_params.py             |   1 +
 src/mesa/main/mtypes.h                       |  19 +++
 src/mesa/main/shaderobj.c                    |   7 +
 src/mesa/main/tests/enum_strings.cpp         |   1 +
 src/mesa/main/uniform_query.cpp              |  16 ++
 src/mesa/program/ir_to_mesa.cpp              |   2 +-
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp   |   3 +-
 25 files changed, 367 insertions(+), 36 deletions(-)

-- 
1.8.3.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to