1. 29 Jul, 2021 6 commits
    • Alyssa Rosenzweig's avatar
      pan/bi: Add hardware quirk annotations to XML · 1214b92e
      Alyssa Rosenzweig authored
      
      
      On Bifrost hardware newer than Mali G71, certain lane/widen modifiers
      are invalid when used with same-cycle temporary due to a silicon quirk
      in the pipeline. These necessarily affect instructions on the ADD unit.
      The default modifier (none, h0, h01, b02, b0123) is always allowed.
      
      Annotate impacted modifiers in ISA.xml so we can handle this condition
      when scheduling, fixing INSTR_INVALID_ENC faults.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      1214b92e
    • Alyssa Rosenzweig's avatar
      pan/bi: Validate the live set starts empty · be9f60ee
      Alyssa Rosenzweig authored
      
      
      Otherwise there is an uninitialized read, and the register allocation
      will fail. (In the sense of failing a precondition. This manifests as
      synthetic interference leading to higher register pressure and useless
      moves. The allocation itself is ok, but it indicates a real bug.)
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      be9f60ee
    • Alyssa Rosenzweig's avatar
      pan/bi: Stub 64-bit in count_write_registers · 4bfc210c
      Alyssa Rosenzweig authored
      
      
      When Valhall lands, we'll need to be more methodical about this. In the
      mean time, this gets validation passing on
      KHR-GLES31.core.compute_shader.atomic-case3 which was crashing in RA and
      now again passes.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      4bfc210c
    • Alyssa Rosenzweig's avatar
      pan/bi: Handle asymmetric staging in bi_count_read_registers · 51561f45
      Alyssa Rosenzweig authored
      
      
      Needed for atomics.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      51561f45
    • Alyssa Rosenzweig's avatar
      pan/bi: Add bi_entry_block helper · dd3b8128
      Alyssa Rosenzweig authored
      
      
      Useful for checking invariants at the start of the program.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      dd3b8128
    • Alyssa Rosenzweig's avatar
      pan/bi: Lower fragment output with <4 components · b617e718
      Alyssa Rosenzweig authored
      
      
      This avoids undefined behaviour in the shader, which will fail
      validation added later in the series. shader-db results are neglible --
      the extra moves required in a few cases are cancelled out by the extra
      moves eliminated by allowing register allocation to work properly.
      
      total instructions in shared programs: 146903 -> 146907 (<.01%)
      instructions in affected programs: 33 -> 37 (12.12%)
      helped: 0
      HURT: 1
      
      total tuples in shared programs: 123616 -> 123613 (<.01%)
      tuples in affected programs: 764 -> 761 (-0.39%)
      helped: 6
      HURT: 4
      helped stats (abs) min: 1.0 max: 4.0 x̄: 1.67 x̃: 1
      helped stats (rel) min: 0.54% max: 5.88% x̄: 2.64% x̃: 1.86%
      HURT stats (abs)   min: 1.0 max: 2.0 x̄: 1.75 x̃: 2
      HURT stats (rel)   min: 4.55% max: 13.33% x̄: 8.57% x̃: 8.19%
      95% mean confidence interval for tuples value: -1.73 1.13
      95% mean confidence interval for tuples %-change: -2.72% 6.41%
      Inconclusive result (value mean confidence interval includes 0).
      
      total clauses in shared programs: 25656 -> 25654 (<.01%)
      clauses in affected programs: 43 -> 41 (-4.65%)
      helped: 2
      HURT: 1
      helped stats (abs) min: 1.0 max: 2.0 x̄: 1.50 x̃: 1
      helped stats (rel) min: 6.25% max: 12.50% x̄: 9.38% x̃: 9.38%
      HURT stats (abs)   min: 1.0 max: 1.0 x̄: 1.00 x̃: 1
      HURT stats (rel)   min: 33.33% max: 33.33% x̄: 33.33% x̃: 33.33%
      
      total cycles in shared programs: 12114.21 -> 12114.12 (<.01%)
      cycles in affected programs: 27.42 -> 27.33 (-0.30%)
      helped: 4
      HURT: 3
      helped stats (abs) min: 0.04166700000000034 max: 0.08333299999999966 x̄: 0.06 x̃: 0
      helped stats (rel) min: 0.57% max: 1.59% x̄: 1.02% x̃: 0.96%
      HURT stats (abs)   min: 0.0416669999999999 max: 0.08333299999999999 x̄: 0.06 x̃: 0
      HURT stats (rel)   min: 4.17% max: 16.67% x̄: 8.80% x̃: 5.56%
      95% mean confidence interval for cycles value: -0.07 0.05
      95% mean confidence interval for cycles %-change: -2.90% 9.27%
      Inconclusive result (value mean confidence interval includes 0).
      
      total arith in shared programs: 4601.08 -> 4601.04 (<.01%)
      arith in affected programs: 29 -> 28.96 (-0.14%)
      helped: 6
      HURT: 4
      helped stats (abs) min: 0.04166700000000001 max: 0.08333299999999966 x̄: 0.06 x̃: 0
      helped stats (rel) min: 0.57% max: 10.00% x̄: 3.63% x̃: 1.39%
      HURT stats (abs)   min: 0.04166700000000001 max: 0.08333399999999991 x̄: 0.07 x̃: 0
      HURT stats (rel)   min: 5.56% max: 16.67% x̄: 10.85% x̃: 10.60%
      95% mean confidence interval for arith value: -0.05 0.05
      95% mean confidence interval for arith %-change: -3.95% 8.28%
      Inconclusive result (value mean confidence interval includes 0).
      
      total quadwords in shared programs: 110008 -> 110002 (<.01%)
      quadwords in affected programs: 1090 -> 1084 (-0.55%)
      helped: 11
      HURT: 8
      helped stats (abs) min: 1.0 max: 7.0 x̄: 2.18 x̃: 1
      helped stats (rel) min: 0.61% max: 13.16% x̄: 4.07% x̃: 1.82%
      HURT stats (abs)   min: 1.0 max: 6.0 x̄: 2.25 x̃: 1
      HURT stats (rel)   min: 3.70% max: 42.86% x̄: 12.55% x̃: 7.50%
      95% mean confidence interval for quadwords value: -1.76 1.13
      95% mean confidence interval for quadwords %-change: -2.95% 8.81%
      Inconclusive result (value mean confidence interval includes 0).
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      b617e718
  2. 28 Jul, 2021 34 commits