Skip to content
  • Paul Berry's avatar
    glsl: don't rename variables in interface block arrays. · 42a921fa
    Paul Berry authored
    The linker matches up variables in interface blocks according to their
    block name and variable name.  When support for interface block arrays
    was added in commit d6863acb
    
    , we renamed variables appearing in
    interface blocks so that their name included the array size.  For
    example, in a block like this:
    
    out foo {
       float bar
    } baz[3];
    
    The variable "bar" would get renamed to "bar[3]".
    
    This is unnecessary, and leads to problems in supporting geometry
    shaders, since geometry shaders require vertex shader outputs which
    are non-arrays to be linked up to geometry shader inputs which are
    arrays.
    
    This patch makes the behaviour of interface block arrays the same as
    simple non-array interface blocks; in both cases, the variables
    contained within them are not renamed.
    
    Reviewed-by: default avatarMatt Turner <mattst88@gmail.com>
    42a921fa