[Mesa-dev] [WIP 00/13] GL_ARB_explicit_uniform_location extension
Tapani Pälli
tapani.palli at intel.com
Thu Mar 27 23:45:23 PDT 2014
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
More information about the mesa-dev
mailing list