> In short, SSO allow to match by name but you can't make any hypothesis on the > previous/next stage. Therefore you must consider all inputs and output as > actives.
New version based on Ian's feedbacks. * Real interstage variables of the program are still optimized * Both output and input of the program remains active * An old bug still remains if name and explicit location rendezvous are mixed Commits decription: 1/ add a not_interstage parameter that will be 1 when variable is either an input of output of the program. I didn't know where to put the ir_set_not_interstage_io function. Maybe it can be moved in linker.cpp. 2/ Set the interstage parameter based on the shader position in the pipeline program. Potentially can be squased with the previous one. 3/ Don't do deadcode removal of not_interstage variable with the exception of the built-in varyings because they don't impact location of others variables Gregory Hainaut (4): glsl IR: add not_interstage attribute to ir_variable glsl link: annotate not_interstage attribute of the ir_var after link phase glsl IR: only allow optimization of interstage variable allow compilation on my system configure.ac | 6 ++++-- src/glsl/ir.h | 6 ++++++ src/glsl/ir_optimization.h | 2 ++ src/glsl/linker.cpp | 47 ++++++++++++++++++++++++++++++++++++++++++++++ src/glsl/opt_dead_code.cpp | 37 ++++++++++++++++++++++++++++++++++++ 5 files changed, 96 insertions(+), 2 deletions(-) -- 2.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev