Skip to content
  • Bas Nieuwenhuizen's avatar
    radv: Add on-demand compilation of built-in shaders. · fbcd1673
    Bas Nieuwenhuizen authored
    
    
    In environments where we cannot cache, e.g. Android (no homedir),
    ChromeOS (readonly rootfs) or sandboxes (cannot open cache), the
    startup cost of creating a device in radv is rather high, due
    to compiling all possible built-in pipelines up front. This meant
    depending on the CPU a 1-4 sec cost of creating a Device.
    
    For CTS this cost is unacceptable, and likely for starting random
    apps too.
    
    So if there is no cache, with this patch radv will compile shaders
    on demand. Once there is a cache from the first run, even if
    incomplete, the driver knows that it can likely write the cache
    and precompiles everything.
    
    Note that I did not switch the buffer and itob/btoi compute pipelines
    to on-demand, since you cannot really do anything in Vulkan without
    them and there are only a few.
    
    This reduces the CTS runtime for the no caches scenario on my
    threadripper from 32 minutes to 8 minutes.
    
    Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
    fbcd1673