diff options
author | Martin Peres <martin.peres@linux.intel.com> | 2015-05-21 15:51:09 +0300 |
---|---|---|
committer | Martin Peres <martin.peres@linux.intel.com> | 2015-06-04 09:25:00 +0300 |
commit | 87a4bc511811327a00f9bbc1b6870b7fa46675f7 (patch) | |
tree | c96c9d1eb9fe62a2ba0d40b62bbdd26f0614e7fe /src/mesa/program | |
parent | 4fd42a7c2798d03476c84b79cb855984a15c222c (diff) | |
download | external_mesa3d-87a4bc511811327a00f9bbc1b6870b7fa46675f7.zip external_mesa3d-87a4bc511811327a00f9bbc1b6870b7fa46675f7.tar.gz external_mesa3d-87a4bc511811327a00f9bbc1b6870b7fa46675f7.tar.bz2 |
mesa: reference built-in uniforms into gl_uniform_storage
This change introduces a new field in gl_uniform_storage to
explicitely say that a uniform is built-in. In the case where it is,
no storage is defined to make it clear that it is read-only from the
mesa side. I fixed all the places in the code that made use of the
structure that I changed. Any place making a wrong assumption and using
the storage straight away will just crash.
This patch seems to implement the path of least resistance towards
listing built-in uniforms in GL_ACTIVE_UNIFORM (and other APIs).
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
Diffstat (limited to 'src/mesa/program')
-rw-r--r-- | src/mesa/program/ir_to_mesa.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 3759724..50b86ad 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -2406,9 +2406,14 @@ _mesa_associate_uniform_storage(struct gl_context *ctx, if (!found) continue; + struct gl_uniform_storage *storage = + &shader_program->UniformStorage[location]; + + /* Do not associate any uniform storage to built-in uniforms */ + if (!storage->builtin) + continue; + if (location != last_location) { - struct gl_uniform_storage *storage = - &shader_program->UniformStorage[location]; enum gl_uniform_driver_format format = uniform_native; unsigned columns = 0; |