[Mesa-dev] [PATCH 00/20] panfrost: Fix Midgard liveness analysis

Alyssa Rosenzweig alyssa.rosenzweig at collabora.com
Fri Aug 16 15:35:40 UTC 2019


This series was motivated by RA failures in a Krita shader. The fix --
rewriting liveness analysis entirely -- turned out to be rather more
involved than I expected. Ah well, I think it was worth it (as the issue
fixed really does apply to GLES2 even, it was just missed in dEQP).

Alyssa Rosenzweig (20):
  pan/midgard: Shrink successors[] to 2 length
  pan/midgard: Use ralloc on ctx/blocks
  pan/midgard: Maintain block predecessor set
  pan/midgard: Add mir_exit_block helper
  pan/midgard: Link exit block
  pan/midgard: Add mir_foreach_predecessor utility
  pan/midgard: Add mir_foreach_successor helper
  pan/midgard: Add mir_foreach_instr_in_block_rev
  pan/midgard: Add mir_foreach_src
  pan/midgard: Index blocks for printing
  pan/midgard: Print predecessors in MIR
  pan/midgard: Add mir_rewrite_index_dst_single helper
  pan/midgard: Fix texw lowering with complex control flow
  pan/midgard: Set mask for lowered read-hazard moves
  pan/midgard: Use type-appropriate swizzle for texture coordinate
  pan/midgard: Clamp st_vary swizzle by number of components
  pan/midgard: Clamp cubemap swizzle to XYXX
  pan/midgard: Treat cubemaps "stores" as loads
  pan/midgard: Analyze load/store for swizzle propagation
  pan/midgard: Compute liveness per-block

 src/panfrost/midgard/compiler.h              |  56 ++++-
 src/panfrost/midgard/helpers.h               |   5 +-
 src/panfrost/midgard/midgard.h               |   9 +-
 src/panfrost/midgard/midgard_compile.c       |  79 ++++--
 src/panfrost/midgard/midgard_ops.c           |   2 +-
 src/panfrost/midgard/midgard_opt_copy_prop.c |  24 +-
 src/panfrost/midgard/midgard_print.c         |   9 +-
 src/panfrost/midgard/midgard_ra.c            | 238 +++++++++++++------
 src/panfrost/midgard/mir.c                   |   9 +-
 9 files changed, 315 insertions(+), 116 deletions(-)

-- 
2.23.0.rc1



More information about the mesa-dev mailing list