diff options
author | marha <marha@users.sourceforge.net> | 2011-07-22 08:25:25 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-07-22 08:25:25 +0200 |
commit | c70e21be1fe5f9b47bce020ffd8d69c6012b21fc (patch) | |
tree | 2ae24d451df0e12093fd82c2cd466e05dfe1aaa0 /mesalib/src/glsl/linker.cpp | |
parent | 556198b74eecf7e9f7105a792a33bf699cff6507 (diff) | |
parent | 91e91b72f07f4e61db17ee86c6933a7217f0e25c (diff) | |
download | vcxsrv-c70e21be1fe5f9b47bce020ffd8d69c6012b21fc.tar.gz vcxsrv-c70e21be1fe5f9b47bce020ffd8d69c6012b21fc.tar.bz2 vcxsrv-c70e21be1fe5f9b47bce020ffd8d69c6012b21fc.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/src/gallium/auxiliary/util/u_vbuf_mgr.c
mesalib/src/glsl/ast_function.cpp
mesalib/src/glsl/ast_to_hir.cpp
mesalib/src/glsl/glsl_types.cpp
mesalib/src/glsl/ir.cpp
mesalib/src/glsl/ir.h
mesalib/src/glsl/linker.cpp
mesalib/src/glsl/s_expression.cpp
mesalib/src/mesa/drivers/common/driverfuncs.c
mesalib/src/mesa/main/dd.h
mesalib/src/mesa/main/fbobject.c
mesalib/src/mesa/main/teximage.c
mesalib/src/mesa/state_tracker/st_cb_texture.c
Diffstat (limited to 'mesalib/src/glsl/linker.cpp')
-rw-r--r-- | mesalib/src/glsl/linker.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mesalib/src/glsl/linker.cpp b/mesalib/src/glsl/linker.cpp index e0d7efa23..cfadfd5e3 100644 --- a/mesalib/src/glsl/linker.cpp +++ b/mesalib/src/glsl/linker.cpp @@ -1343,7 +1343,7 @@ assign_attribute_or_color_locations(gl_shader_program *prog, foreach_list(node, sh->ir) {
ir_variable *const var = ((ir_instruction *) node)->as_variable();
- if ((var == NULL) || (var->mode != direction))
+ if ((var == NULL) || (var->mode != (unsigned) direction))
continue;
if (var->explicit_location) {
@@ -1702,6 +1702,10 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog) if (prog->_LinkedShaders[i] == NULL)
continue;
+ detect_recursion_linked(prog, prog->_LinkedShaders[i]->ir);
+ if (!prog->LinkStatus)
+ goto done;
+
while (do_common_optimization(prog->_LinkedShaders[i]->ir, true, 32))
;
}
|