Skip to content
  • Kenneth Graunke's avatar
    glsl: Pass _mesa_glsl_parse_state into matching_signature and such. · 3e820e3a
    Kenneth Graunke authored
    
    
    During compilation, we'll use this to determine built-in availability.
    The plan is to have a single shader containing every built-in in every
    version of the language, but filter out the ones that aren't actually
    available to the shader being compiled.
    
    At link time, we don't actually need this filtering capability: we've
    already imported prototypes for every built-in that the shader actually
    calls, and they're flagged as is_builtin().  The linker doesn't import
    any additional prototypes, so it won't pull in any unavailable
    built-ins.  When resolving prototypes to function definitions, the
    linker ensures the values of is_builtin() match, which means that a
    shader can't trick the linker into importing the body of an unavailable
    built-in by defining a suspiciously similar prototype.
    
    In other words, during linking, we can just pass in NULL.  It will work
    out fine.
    
    Signed-off-by: default avatarKenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: default avatarMatt Turner <mattst88@gmail.com>
    Reviewed-by: default avatarPaul Berry <stereotype441@gmail.com>
    3e820e3a