diff options
| author | Ian Romanick <ian.d.romanick@intel.com> | 2010-07-14 13:22:12 -0700 | 
|---|---|---|
| committer | Ian Romanick <ian.d.romanick@intel.com> | 2010-07-19 14:50:43 -0700 | 
| commit | de415b7f4b1278f10097f4af80886bc82912dd92 (patch) | |
| tree | ef04fef82c4113e27379d5f45b83acb40d9c992a | |
| parent | 8fe8a814b0c746f0f655a67f8755f9dee858d230 (diff) | |
linker: Add comment about bug in initializer handling
| -rw-r--r-- | src/glsl/linker.cpp | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index f7c178e967..06aa24e66f 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -314,6 +314,14 @@ cross_validate_globals(struct gl_shader_program *prog,  		   * have an initializer but a later instance does, copy the  		   * initializer to the version stored in the symbol table.  		   */ +		  /* FINISHME: This is wrong.  The constant_value field should +		   * FINISHME: not be modified!  Imagine a case where a shader +		   * FINISHME: without an initializer is linked in two different +		   * FINISHME: programs with shaders that have differing +		   * FINISHME: initializers.  Linking with the first will +		   * FINISHME: modify the shader, and linking with the second +		   * FINISHME: will fail. +		   */  		  existing->constant_value = var->constant_value->clone(NULL);  	    }  	 } else | 
