Programmatic blending

Submitted by Alyssa Rosenzweig on May 13, 2019, 3:45 a.m.

Details

Reviewer None
Submitted May 13, 2019, 3:45 a.m.
Last Updated May 13, 2019, 3:46 a.m.
Revision 1

Cover Letter(s)

Revision 1
      This series is take two at programmatic blending. The first few patches
(setting up the overall structure) of v1 were merged and are omitted
here. We start with the improved nir_lower_blend implementation, which
has stylistic fixes and an implementation of glColorMask. Beyond that,
the biggest change is the inclusion of the vectorization pass, which is
needed for decent compile results with this lowering on vector
architectures as noted in review of v1.

Alyssa Rosenzweig (5):
  nir: Add nir_lower_blend pass
  panfrost/midgard: Route new blending intrinsics
  panfrost/midgard: Enable NIR vectorization pass
  panfrost: Wire up nir_lower_blend
  panfrost: Improve fixed-function blending

Connor Abbott (1):
  nir: add a vectorization pass

 src/compiler/Makefile.sources                 |   2 +
 src/compiler/nir/meson.build                  |   2 +
 src/compiler/nir/nir.h                        |  28 +
 src/compiler/nir/nir_lower_blend.c            | 246 +++++
 src/compiler/nir/nir_opt_vectorize.c          | 454 +++++++++
 .../drivers/panfrost/ci/expected-failures.txt | 942 ------------------
 .../panfrost/midgard/midgard_compile.c        | 226 +++--
 .../drivers/panfrost/pan_blend_shaders.c      |  48 +-
 src/gallium/drivers/panfrost/pan_blending.c   |  70 +-
 9 files changed, 917 insertions(+), 1101 deletions(-)
 create mode 100644 src/compiler/nir/nir_lower_blend.c
 create mode 100644 src/compiler/nir/nir_opt_vectorize.c
    

Revisions