1. 16 Jul, 2021 18 commits
  2. 14 Jul, 2021 3 commits
  3. 13 Jul, 2021 4 commits
  4. 12 Jul, 2021 15 commits
    • Alyssa Rosenzweig's avatar
      pan/bi: Add a bundling heuristic · ab2cd532
      Alyssa Rosenzweig authored
      
      
      Pick instructions locally that are likely to minimize nop's globally.
      Note the obvious greedy solution is ineffective. Instead the principle
      is to choose instructions which will increase _future_ scheduler
      freedom, on the assumption that means fewer nop's overall will be
      needed.
      
      There is no concern about register pressure and little concern about
      message timing, since this is post-RA and message ordering was fixed.
      
      total tuples in shared programs: 125304 -> 123770 (-1.22%)
      tuples in affected programs: 88301 -> 86767 (-1.74%)
      helped: 548
      HURT: 198
      helped stats (abs) min: 1.0 max: 31.0 x̄: 3.43 x̃: 2
      helped stats (rel) min: 0.33% max: 16.67% x̄: 3.09% x̃: 2.44%
      HURT stats (abs)   min: 1.0 max: 12.0 x̄: 1.73 x̃: 1
      HURT stats (rel)   min: 0.27% max: 11.11% x̄: 2.82% x̃: 2.35%
      95% mean confidence interval for tuples value: -2.39 -1.72
      95% mean confidence interval for tuples %-change: -1.77% -1.27%
      Tuples are helped.
      
      total clauses in shared programs: 26059 -> 25655 (-1.55%)
      clauses in affected programs: 10821 -> 10417 (-3.73%)
      helped: 311
      HURT: 42
      helped stats (abs) min: 1.0 max: 6.0 x̄: 1.44 x̃: 1
      helped stats (rel) min: 0.48% max: 16.00% x̄: 5.26% x̃: 5.00%
      HURT stats (abs)   min: 1.0 max: 2.0 x̄: 1.05 x̃: 1
      HURT stats (rel)   min: 2.13% max: 33.33% x̄: 7.49% x̃: 6.25%
      95% mean confidence interval for clauses value: -1.26 -1.02
      95% mean confidence interval for clauses %-change: -4.28% -3.21%
      Clauses are helped.
      
      total cycles in shared programs: 12154.79 -> 12114.83 (-0.33%)
      cycles in affected programs: 1907.63 -> 1867.67 (-2.09%)
      helped: 227
      HURT: 99
      helped stats (abs) min: 0.041665999999999315 max: 1.2083360000000027 x̄: 0.22 x̃: 0
      helped stats (rel) min: 0.36% max: 20.00% x̄: 4.14% x̃: 3.85%
      HURT stats (abs)   min: 0.041665999999999315 max: 0.5 x̄: 0.09 x̃: 0
      HURT stats (rel)   min: 0.28% max: 9.09% x̄: 2.75% x̃: 2.63%
      95% mean confidence interval for cycles value: -0.15 -0.09
      95% mean confidence interval for cycles %-change: -2.51% -1.59%
      Cycles are helped.
      
      total arith in shared programs: 4658.13 -> 4603.42 (-1.17%)
      arith in affected programs: 3449.83 -> 3395.12 (-1.59%)
      helped: 509
      HURT: 249
      helped stats (abs) min: 0.041665999999999315 max: 1.2083360000000027 x̄: 0.14 x̃: 0
      helped stats (rel) min: 0.36% max: 20.00% x̄: 3.56% x̃: 2.63%
      HURT stats (abs)   min: 0.041665999999999315 max: 0.5 x̄: 0.07 x̃: 0
      HURT stats (rel)   min: 0.28% max: 25.00% x̄: 3.32% x̃: 2.27%
      95% mean confidence interval for arith value: -0.09 -0.06
      95% mean confidence interval for arith %-change: -1.64% -0.97%
      Arith are helped.
      
      total quadwords in shared programs: 111394 -> 110114 (-1.15%)
      quadwords in affected programs: 78074 -> 76794 (-1.64%)
      helped: 503
      HURT: 204
      helped stats (abs) min: 1.0 max: 43.0 x̄: 3.33 x̃: 2
      helped stats (rel) min: 0.41% max: 13.79% x̄: 3.02% x̃: 2.44%
      HURT stats (abs)   min: 1.0 max: 26.0 x̄: 1.94 x̃: 1
      HURT stats (rel)   min: 0.48% max: 7.55% x̄: 2.44% x̃: 2.22%
      95% mean confidence interval for quadwords value: -2.16 -1.46
      95% mean confidence interval for quadwords %-change: -1.67% -1.21%
      Quadwords are helped.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      Part-of: <mesa/mesa!10961>
      ab2cd532
    • Alyssa Rosenzweig's avatar
      pan/bi: Calculate dependency graph when bundling · 59966220
      Alyssa Rosenzweig authored
      
      
      Code is ported from Midgard, modified to be scalar, post-RA, and to put
      the arrays on the worklist instead of the instruction to save memory.
      This enables out-of-order scheduling.
      
      total tuples in shared programs: 128691 -> 125304 (-2.63%)
      tuples in affected programs: 114091 -> 110704 (-2.97%)
      helped: 844
      HURT: 377
      helped stats (abs) min: 1.0 max: 150.0 x̄: 4.88 x̃: 3
      helped stats (rel) min: 0.30% max: 26.42% x̄: 5.56% x̃: 4.35%
      HURT stats (abs)   min: 1.0 max: 8.0 x̄: 1.94 x̃: 1
      HURT stats (rel)   min: 0.20% max: 33.33% x̄: 6.84% x̃: 3.23%
      95% mean confidence interval for tuples value: -3.16 -2.38
      95% mean confidence interval for tuples %-change: -2.19% -1.27%
      Tuples are helped.
      
      total clauses in shared programs: 27579 -> 26059 (-5.51%)
      clauses in affected programs: 20606 -> 19086 (-7.38%)
      helped: 941
      HURT: 39
      helped stats (abs) min: 1.0 max: 21.0 x̄: 1.66 x̃: 1
      helped stats (rel) min: 0.69% max: 44.44% x̄: 10.48% x̃: 9.09%
      HURT stats (abs)   min: 1.0 max: 2.0 x̄: 1.15 x̃: 1
      HURT stats (rel)   min: 1.89% max: 10.00% x̄: 4.73% x̃: 4.55%
      95% mean confidence interval for clauses value: -1.63 -1.47
      95% mean confidence interval for clauses %-change: -10.27% -9.48%
      Clauses are helped.
      
      total cycles in shared programs: 12262.54 -> 12154.79 (-0.88%)
      cycles in affected programs: 2210.54 -> 2102.79 (-4.87%)
      helped: 374
      HURT: 56
      helped stats (abs) min: 0.041665999999999315 max: 6.25 x̄: 0.30 x̃: 0
      helped stats (rel) min: 0.42% max: 26.00% x̄: 6.90% x̃: 7.14%
      HURT stats (abs)   min: 0.041665999999999315 max: 0.5833319999999986 x̄: 0.11 x̃: 0
      HURT stats (rel)   min: 0.16% max: 100.00% x̄: 55.17% x̃: 50.00%
      95% mean confidence interval for cycles value: -0.29 -0.21
      95% mean confidence interval for cycles %-change: -1.37% 3.73%
      Inconclusive result (%-change mean confidence interval includes 0).
      
      total arith in shared programs: 4852.29 -> 4658.13 (-4.00%)
      arith in affected programs: 4525.17 -> 4331 (-4.29%)
      helped: 1112
      HURT: 166
      helped stats (abs) min: 0.041665999999999315 max: 6.25 x̄: 0.19 x̃: 0
      helped stats (rel) min: 0.42% max: 33.33% x̄: 6.59% x̃: 5.36%
      HURT stats (abs)   min: 0.041665999999999315 max: 0.5833319999999986 x̄: 0.07 x̃: 0
      HURT stats (rel)   min: 0.16% max: 100.00% x̄: 25.05% x̃: 2.40%
      95% mean confidence interval for arith value: -0.17 -0.14
      95% mean confidence interval for arith %-change: -3.44% -1.51%
      Arith are helped.
      
      total quadwords in shared programs: 117141 -> 111394 (-4.91%)
      quadwords in affected programs: 104390 -> 98643 (-5.51%)
      helped: 1245
      HURT: 76
      helped stats (abs) min: 1.0 max: 69.0 x̄: 4.74 x̃: 4
      helped stats (rel) min: 0.28% max: 35.00% x̄: 7.88% x̃: 6.45%
      HURT stats (abs)   min: 1.0 max: 8.0 x̄: 2.01 x̃: 1
      HURT stats (rel)   min: 0.20% max: 10.00% x̄: 3.52% x̃: 4.25%
      95% mean confidence interval for quadwords value: -4.61 -4.09
      95% mean confidence interval for quadwords %-change: -7.56% -6.88%
      Quadwords are helped.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
      Part-of: <mesa/mesa!10961>
      59966220
    • Alyssa Rosenzweig's avatar
      pan/bi: Handle 4-src instructions in scheduler · e46ec44a
      Alyssa Rosenzweig authored
      
      
      Spill to a move. This allows us to emit SHADDX and general CSEL.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!10961>
      e46ec44a
    • Alyssa Rosenzweig's avatar
      pan/bi: Add bi_before_tuple convenience method · 20e11cbb
      Alyssa Rosenzweig authored
      
      
      For constructing instructions during scheduling.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!10961>
      20e11cbb
    • Alyssa Rosenzweig's avatar
      pan/bi: Handle multiple destinations in scheduler · c53f3777
      Alyssa Rosenzweig authored
      
      
      Needed for correct handling of pseudo ops like SHADDX and CUBEFACE
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!10961>
      c53f3777
    • Alyssa Rosenzweig's avatar
      pan/bi: Do helper termination analysis on clauses · 6bf8e960
      Alyssa Rosenzweig authored
      
      
      Unlike the dependency analysis for the skip bits which is a function of
      the data flow graph, the thread termination analysis is dependent on the
      actual sequence of instructions. As such, it must be done after
      scheduling to be correct in the presence of out-of-order scheduling.
      
      Furthermore it's specified in terms of clauses, not instructions.
      Reflecting this in our code gets a nice simplification. As a side effect
      this puts extra td flags on subsequent clauses, which matches the DDK's
      behaviour. (Maybe td is just a hint?)
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!10961>
      6bf8e960
    • Alyssa Rosenzweig's avatar
      pan/bi: Update ins->link after scheduling · 0515c6a3
      Alyssa Rosenzweig authored
      
      
      Otherwise foreach_instr and friends will be subtly wrong. None of our
      current passes rely on this but it's a footgun.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!10961>
      0515c6a3
    • Alyssa Rosenzweig's avatar
      522020e6
    • Alyssa Rosenzweig's avatar
      pan/bi: Refuse to CSE non-SSA sources · 3e9411a7
      Alyssa Rosenzweig authored
      
      
      They might have changed in between.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!10961>
      3e9411a7
    • Alyssa Rosenzweig's avatar
      panfrost: Remove pan_blitter integration · 345778fa
      Alyssa Rosenzweig authored
      
      
      This was useful when panvk was being bootstrapped, allowing the blitter
      to be tested against a known-working driver. With panvk in-tree, I don't
      see a compelling reason to keep pan_blitter support wired in but
      off-by-default. Keeping it will complicate the GenXML change we're about
      to make.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!11785>
      345778fa
    • Alyssa Rosenzweig's avatar
      eddb81c3
    • Alyssa Rosenzweig's avatar
      panfrost: Pin an architecture for blending · 8db1c0e5
      Alyssa Rosenzweig authored
      
      
      Need to pick something but it's all the same, even on Valhall.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!11785>
      8db1c0e5
    • Alyssa Rosenzweig's avatar
      86c00732
    • Alyssa Rosenzweig's avatar
      panfrost: Use smaller sizes in blend table · c3592498
      Alyssa Rosenzweig authored
      
      
      Saves a few kb.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!11785>
      c3592498
    • Alyssa Rosenzweig's avatar
      panfrost: Specialize blendable_formats for v6 · d8eef119
      Alyssa Rosenzweig authored
      
      
      Let's bake the swizzle in.
      Signed-off-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa@collabora.com>
      Part-of: <mesa/mesa!11785>
      d8eef119