Skip to content
  • Marcin Ślusarz's avatar
    intel/compiler: remove branch weight heuristic · 21ffacff
    Marcin Ślusarz authored
    
    
    As a result of this patch, compiler chooses SIMD32 shaders more
    frequently.
    
    Current logic is designed to avoid regressions from enabling SIMD32 at
    all cost, even though the cases where regression can happen are probably
    for smaller draw calls (far away from the camera and though smaller).
    
    In Intel perf CI this patch improves FPS in:
    - gfxbench5 alu2:      21.92% (gen9), 23.7%  (gen11)
    - synmark OglShMapVsm:  3.26% (gen9),  4.52% (gen11)
    - gfxbench5 car chase:  1.34% (gen9),  1.32% (gen11)
    No observed regressions there.
    
    In my testing, it also improves FPS in:
    - The Talos Principle:   2.9% (gen9)
    
    The other 16 games I tested had very minor changes in performance
    (2/3 positive, but not significant enough to list here).
    
    Note: this patch harms synmark OglDrvState (which is not in Intel perf
    CI) by ~2.9%, but this benchmark renders multiple scenes from other
    workloads (including OglShMapVsm, which is helped in standalone mode)
    in tiny rectangles. Rendering so small drastically changes branching
    statistics, which favors smaller SIMD modes. I assume this matters
    only in micro-benchmarks, as in real workloads more expensive (with
    more uniform branching behavior) draw calls dominate.
    
    Signed-off-by: default avatarMarcin Ślusarz <marcin.slusarz@intel.com>
    Acked-by: default avatarFrancisco Jerez <currojerez@riseup.net>
    Part-of: <mesa/mesa!7137>
    21ffacff