[Mesa-dev] [RFC 0/3] V2: Improve GLSL support of GL_ARB_separate_shader_objects

Gregory Hainaut gregory.hainaut at gmail.com
Sat Oct 3 02:31:17 PDT 2015

> 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
  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(-)


More information about the mesa-dev mailing list