[Mesa-dev] [PATCH 00/42] panfrost: Render target stuff

Alyssa Rosenzweig alyssa.rosenzweig at collabora.com
Mon Jul 8 14:08:13 UTC 2019


This series is focused on rendering to more render target formats,
particularly ones that require the use of a blend shader. As an aside in
the middle, this leads us to implement preliminary fp16/i16 support in
the Midgard compiler.

Depends on the accompanying NIR and Gallium patches.

Alyssa Rosenzweig (42):
  panfrost: Prepare some code for MRT
  panfrost/mfbd: Include codes for float framebuffers
  panfrost: Extend clear colour packing
  panfrost/midgard: Passthrough nir_lower_framebuffer
  panfrost/midgard: Move scale from MIR to NIR
  panfrost/midgard: Rewrite to use new blend intrinsic
  panfrost/midgard: Implement integer downsize ops
  panfrost/midgard: Use nir_dest_num_components
  panfrost/midgard: Move blend type conversion into NIR
  panfrost/midgard: Route blend load intrinsic
  panfrost/midgard: Implement upscaling type converts
  panfrost/midgard: Fix blend constant scheduling bug
  panfrost/midgard: Move blend shader loads to NIR
  panfrost/midgard: Simplify blend read
  panfrost/midgard: Verify src_bitsize == dst_bitsize
  panfrost/midgard: Implement f2f16/f2f32
  panfrost/midgard: Implement f2u16 and friends
  panfrost/midgard: Allow fp16 in scalar ALU
  panfrost/midgard: Hoist mask field
  panfrost/midgard: Fix fp16 embedded constants
  panfrost/midgard: Eliminate redundant type convert
  panfrost/midgard: Handle fp16 in embedded_to_inline_constants
  panfrost/midgard: Fix scalarification
  panfrost/midgard: Remove opt_copy_prop_tex
  panfrost/midgard: Use fp16 exclusively while blending
  panfrost/midgard: Use Gallium framebuffer formats
  panfrost: Pipe framebuffer format around
  panfrost: Route format through fixed-function blending
  panfrost: Handle "blend disabled" blend shaders
  panfrost/midgard: Skip blend for REPLACE (shader)
  panfrost/midgard: Implement preliminary float converters
  panfrost: Set rt_count_2 for bpp>4 formats
  panfrost/mfbd: Handle pure int formats
  panfrost/midgard: Handle pure int formats
  panfrost/midgard: Use unsigned blend patch offset
  panfrost: Refactor blend infrastructure
  panfrost: Implement ES3-format writeout
  panfrost/midgard: Handle PIPE_FORMAT_B10G10R10A2_UNORM
  panfrost/mfbd: Handle PIPE_FORMAT_B10G10R10A2_UNORM
  panfrost/midgard: Cleanup blend switch
  panfrost/mfbd: Cleanup format code selection
  panfrost: Update supported formats

 src/gallium/drivers/panfrost/meson.build      |   2 +
 .../drivers/panfrost/midgard/compiler.h       |   7 +-
 .../drivers/panfrost/midgard/helpers.h        |  21 +-
 .../panfrost/midgard/midgard_compile.c        | 402 ++++++++----------
 .../drivers/panfrost/midgard/midgard_emit.c   |  61 ++-
 .../panfrost/midgard/midgard_nir_algebraic.py |  22 +-
 .../drivers/panfrost/midgard/midgard_ops.h    |   9 +-
 .../drivers/panfrost/midgard/midgard_ra.c     |  25 +-
 .../panfrost/midgard/midgard_schedule.c       |  71 +++-
 .../panfrost/midgard/nir_lower_blend.c        |  37 +-
 .../panfrost/midgard/nir_lower_blend.h        |   4 +
 .../panfrost/midgard/nir_lower_framebuffer.c  | 345 +++++++++++++++
 src/gallium/drivers/panfrost/pan_blend.h      | 109 +++++
 src/gallium/drivers/panfrost/pan_blend_cso.c  | 268 ++++++++++++
 .../drivers/panfrost/pan_blend_shaders.c      |  70 +--
 .../drivers/panfrost/pan_blend_shaders.h      |   8 +-
 src/gallium/drivers/panfrost/pan_blending.c   | 100 +++--
 src/gallium/drivers/panfrost/pan_blending.h   |  10 +-
 src/gallium/drivers/panfrost/pan_context.c    | 167 ++------
 src/gallium/drivers/panfrost/pan_context.h    |  16 +-
 src/gallium/drivers/panfrost/pan_job.c        |  86 +++-
 src/gallium/drivers/panfrost/pan_job.h        |   8 +-
 src/gallium/drivers/panfrost/pan_mfbd.c       | 124 +++++-
 src/gallium/drivers/panfrost/pan_screen.c     |  50 +--
 src/gallium/drivers/panfrost/pan_sfbd.c       |   8 +-
 25 files changed, 1438 insertions(+), 592 deletions(-)
 create mode 100644 src/gallium/drivers/panfrost/midgard/nir_lower_framebuffer.c
 create mode 100644 src/gallium/drivers/panfrost/pan_blend.h
 create mode 100644 src/gallium/drivers/panfrost/pan_blend_cso.c

-- 
2.20.1



More information about the mesa-dev mailing list