1. 16 Feb, 2019 3 commits
    • Timothy Arceri's avatar
      i965/anv: use nir_opt_vectorize_io() · 02f1fe20
      Timothy Arceri authored
      Commit 8d822246 caused substantially more URB messages in
      geometry and tessellation shaders (due to enabling
      nir_lower_io_to_scalar_early). This combines io again to avoid
      this regression while still allowing link time optimisation of
      components.
      
      Shader-db results (SKL):
      
      total instructions in shared programs: 13109035 -> 13107191 (-0.01%)
      instructions in affected programs: 66278 -> 64434 (-2.78%)
      helped: 242
      HURT: 13
      
      total cycles in shared programs: 332090418 -> 332094364 (<.01%)
      cycles in affected programs: 285477 -> 289423 (1.38%)
      helped: 39
      HURT: 215
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107510
      02f1fe20
    • Timothy Arceri's avatar
      nir: add nir_opt_vectorize_io() · ef96949d
      Timothy Arceri authored
      Once linking opts are done this pass recombines varying components.
      
      This patch is loosely based on Connor's vectorize alu pass.
      
      V2: skip fragment shaders
      
      V3:
      - dont accidentally vectorise local vars
      - pass correct component to create_new_store()
      ef96949d
    • Timothy Arceri's avatar
      nir: add glsl_replace_vector_type() · 2195a673
      Timothy Arceri authored
      This creates a new glsl_type with the specified number on components.
      
      We will use this in the following patch when vectorising io.
      2195a673
  2. 15 Feb, 2019 37 commits