Skip to content
  • Lionel Landwerlin's avatar
    mesa/compiler: rework tear down of builtin/types · e4da8b9c
    Lionel Landwerlin authored
    
    
    The issue we're running into when running CTS is that glsl types are
    deleted while builtins depending on them are not.
    
    This happens because on one hand we have glsl types ref counted, but
    builtins are not. Instead builtins are destroyed when unloading libGL
    or explicitly calling glReleaseShaderCompiler().
    
    This change removes almost entirely any dealing with glsl types
    ref/unref by letting the builtins deal with it instead. In turn we
    introduce a builtin ref count mechanism. Each GL context takes a
    reference on the builtins when compiling a shader for the first time.
    It releases the reference when the context is destroyed. It can also
    explicitly release those when glReleaseShaderCompiler() is called.
    
    Finally we also take a reference on the glsl types when loading libGL
    to avoid recreating glsl types too often.
    
    v2: Ensure we take a reference if we don't have one in link step (Lionel)
    
    Signed-off-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110796
    
    
    Reviewed-by: default avatarEric Anholt <eric@anholt.net>
    Reviewed-by: default avatarTapani Pälli <tapani.palli@intel.com>
    e4da8b9c