diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2014-04-27 14:16:48 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2014-05-02 07:16:54 -0700 |
commit | 5998fd536a1bb1d13218c995aa69723c6767cf04 (patch) | |
tree | a038175491ede50b6cd67b644a97b12128a2e514 /src/glsl/lower_packed_varyings.cpp | |
parent | 7016afe25d1c8ca652bd712ce130b135220530c5 (diff) | |
download | external_mesa3d-5998fd536a1bb1d13218c995aa69723c6767cf04.zip external_mesa3d-5998fd536a1bb1d13218c995aa69723c6767cf04.tar.gz external_mesa3d-5998fd536a1bb1d13218c995aa69723c6767cf04.tar.bz2 |
linker: Make lower_packed_varyings work with explicit locations
Don't do anything with variables that have explicitly assigned
locations. This is also how built-in varyings are handled.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/glsl/lower_packed_varyings.cpp')
-rw-r--r-- | src/glsl/lower_packed_varyings.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/glsl/lower_packed_varyings.cpp b/src/glsl/lower_packed_varyings.cpp index 35f1c5f..e865474 100644 --- a/src/glsl/lower_packed_varyings.cpp +++ b/src/glsl/lower_packed_varyings.cpp @@ -584,7 +584,12 @@ lower_packed_varyings_visitor::get_packed_varying_deref( bool lower_packed_varyings_visitor::needs_lowering(ir_variable *var) { - /* Things composed of vec4's don't need lowering. Everything else does. */ + /* Things composed of vec4's and varyings with explicitly assigned + * locations don't need lowering. Everything else does. + */ + if (var->data.explicit_location) + return false; + const glsl_type *type = var->type; if (this->gs_input_vertices != 0) { assert(type->is_array()); |