Skip to content
  • Matt Turner's avatar
    nir: Unset metadata debug bit if no progress made · 26236531
    Matt Turner authored
    
    
    NIR metadata validation verifies that the debug bit was unset (by a call
    to nir_metadata_preserve) if a NIR optimization pass made progress on
    the shader. With the expectation that the NIR shader consists of only a
    single main function, it has been safe to call nir_metadata_preserve()
    iff progress was made.
    
    However, most optimization passes calculate progress per-function and
    then return the union of those calculations. In the case that an
    optimization pass makes progress only on a subset of the functions in
    the shader metadata validation will detect the debug bit is still set on
    any unchanged functions resulting in a failed assertion.
    
    This patch offers a quick solution (short of a larger scale refactoring
    which I do not wish to undertake as part of this series) that simply
    unsets the debug bit on unchanged functions.
    
    Reviewed-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: default avatarJason Ekstrand <jason@jlekstrand.net>
    26236531