Skip to content
  • Marek Olšák's avatar
    st/mesa: enable GLSLOptimizeConservatively for drivers that want it · c7affbf6
    Marek Olšák authored
    
    
    GLSL compilation now takes 24% less time with the Gallium noop driver.
    I used my shader-db for the measurement. The difference for the whole
    radeonsi driver can be ~10%.
    
    The generated TGSI is mostly the same. For example, the compilation success
    rate with a TGSI->GCN bytecode converter without any optimizations is
    the same. Note that glsl_to_tgsi does its own copy propagation and simple
    register allocation.
    
    shader-db GCN report:
    - Talos spills fewer SGPRs.
    - DOTA 2 spills more SGPRs.
    - The average shader-db score is better, but it's just due to randomness.
    
    29045 shaders in 17564 tests
    Totals:
    SGPRS: 1325929 -> 1325017 (-0.07 %)
    VGPRS: 1010808 -> 1010172 (-0.06 %)
    Spilled SGPRs: 1432 -> 1399 (-2.30 %)
    Spilled VGPRs: 93 -> 92 (-1.08 %)
    Private memory VGPRs: 688 -> 688 (0.00 %)
    Scratch size: 2540 -> 2484 (-2.20 %) dwords per thread
    Code Size: 39336732 -> 39342936 (0.02 %) bytes
    Max Waves: 217937 -> 217969 (0.01 %)
    
    Reviewed-by: default avatarEric Anholt <eric@anholt.net>
    c7affbf6