[Mesa-dev] [PATCH 00/33] anv: Use blorp for most blits and clears

Nanley Chery nanleychery at gmail.com
Mon Sep 12 23:19:34 UTC 2016


On Tue, Sep 06, 2016 at 10:20:02AM -0700, Nanley Chery wrote:
> On Mon, Sep 05, 2016 at 09:38:59AM -0700, Jason Ekstrand wrote:
> > Everything is now reviewed.  I've also sent two additional patches blorp
> > which, when placed prior to the anv patches, make the series
> > regression-free and they've been reviewed by Topi.
> > 
> > Nanley, if you don't mind, I would still like your review on the "use blorp
> > to implement vkFoo" patches.  They're a complete replacement of the old
> > blit2d or direct meta entrypoints and it's entirely possible that I've
> > missed things.  You know the dirty little details of those APIs better than
> > about anyone else (including myself) so I'll feel much more comfortable if
> > you've looked over it.
> > 
> 
> Sure, I'll take a look at them today.

I've looked over all the patches that touch the API entry points I'm
most familiar with (all the users of blorp_copy()), so feel free to
push.

- Nanley

> 
> - Nanley
> 
> > --Jason
> > 
> > On Wed, Aug 31, 2016 at 2:22 PM, Jason Ekstrand <jason at jlekstrand.net>
> > wrote:
> > 
> > > This little (hah!) series does a bit more blorp reworking and then converts
> > > most of the Vulkan driver to using blorp for its blit and copy operations.
> > >
> > > As it currently stands, it adds a few cts "regresssions" which are really
> > > because the CTS makes assumptions about rounding in scaled blit operations
> > > that aren't quite valid.
> > >
> > > This series also doesn't 100% remove vulkan meta.  As it stands, blorp
> > > can't do depth/stencil clears so those are left in meta.  Support could be
> > > added to blorp (and we could use it from GL) but that's a bit more work and
> > > I wanted to get this sent out earlier rather than later.
> > >
> > > For review, I would recommend that Topi review the first 19 or so and
> > > Nanley review patch 26+.  For 20-25, I'm not sure.  Kristian may be the
> > > best one to review since he understands it all but Jordan or Nanley could
> > > take a crack at it too.
> > >
> > > Cc: Topi Pohjolainen <topi.pohjolainen at intel.com>
> > > Cc: Jordan Justen <jordan.l.justen at intel.com>
> > > Cc: Nanley Chery <nanley.g.chery at intel.com>
> > > Cc: Chad Versace <chad at kiwitree.net>
> > > Cc: Kristian Høgsberg <krh at bitplanet.net>
> > >
> > > Jason Ekstrand (33):
> > >   intel/isl: Add an isl_swizzle structure and use it for isl_view
> > >     swizzles
> > >   intel/blorp: Take an isl_swizzle instead of a SWIZZLE
> > >   intel/blorp: Take a destination swizzle in blorp_blit
> > >   intel/blorp: Don't assume R8_UINT in convert_to_single_slice
> > >   intel/blorp: Use the surface format for computing offsets
> > >   intel/blorp: Fix the early return condition in convert_to_single_slice
> > >   intel/isl: Fix an assert in get_intratile_offset_sa
> > >   intel/blorp: Handle 3D surfaces in convert_to_single_slice
> > >   intel/isl: Add a helper for getting the size of an interleaved pixel
> > >   intel/blorp: Use isl_get_interleaved_msaa_px_size_sa
> > >   intel/blorp: Use fake_interleaved_msaa in retile_w_to_y
> > >   intel/blorp: Stop using the X/YOffset field of RENDER_SURFACE_STATE
> > >   intel/blorp: Pull the guts of blorp_blit into a helper
> > >   intel/blorp: Add an entrypoint for doing bit-for-bit copies
> > >   intel/blorp: Add support for RGB destinations in copies
> > >   intel/blorp: Add support for clearing R9G9B9E5 surfaces
> > >   intel/blorp: Make color_write_disable const and optional
> > >   intel/blorp: Add a swizzle parameter to blorp_clear
> > >   intel/blorp: Rework alloc_binding_table
> > >   intel/blorp: Use #defines for all __gen_ helpers
> > >   anv/pipeline: Roll compute_urb_partition into emit_urb_setup
> > >   anv: Generalize emit_urb_setup
> > >   intel/anv: Use #defines for all __gen_ helpers
> > >   anv: Add initial blorp support
> > >   anv: Make image_get_surface_for_aspect_mask const
> > >   anv: Use blorp to implement VkBlitImage
> > >   anv: Use blorp for CopyImageToBuffer
> > >   anv: Use blorp for CopyBufferToImage
> > >   anv: Use blorp for CopyImage
> > >   anv: Use blorp for CopyBuffer and UpdateBuffer
> > >   anv: Delete meta_blit2d
> > >   anv: Use blorp for ClearColorImage
> > >   anv: Use blorp for doing MSAA resolves
> > >
> > >  src/intel/blorp/blorp.c                          |    7 +-
> > >  src/intel/blorp/blorp.h                          |   19 +-
> > >  src/intel/blorp/blorp_blit.c                     |  570 +++++---
> > >  src/intel/blorp/blorp_clear.c                    |   24 +-
> > >  src/intel/blorp/blorp_genX_exec.h                |   25 +-
> > >  src/intel/blorp/blorp_priv.h                     |   26 +-
> > >  src/intel/isl/isl.c                              |   22 +-
> > >  src/intel/isl/isl.h                              |   23 +-
> > >  src/intel/isl/isl_surface_state.c                |    8 +-
> > >  src/intel/vulkan/Makefile.am                     |    1 +
> > >  src/intel/vulkan/Makefile.sources                |    9 +-
> > >  src/intel/vulkan/anv_blorp.c                     |  846 ++++++++++++
> > >  src/intel/vulkan/anv_device.c                    |    4 +
> > >  src/intel/vulkan/anv_formats.c                   |    9 +-
> > >  src/intel/vulkan/anv_genX.h                      |    9 +
> > >  src/intel/vulkan/anv_image.c                     |   27 +-
> > >  src/intel/vulkan/anv_meta.c                      |   21 -
> > >  src/intel/vulkan/anv_meta.h                      |   44 -
> > >  src/intel/vulkan/anv_meta_blit.c                 |  739 -----------
> > >  src/intel/vulkan/anv_meta_blit2d.c               | 1544
> > > ----------------------
> > >  src/intel/vulkan/anv_meta_clear.c                |   21 -
> > >  src/intel/vulkan/anv_meta_copy.c                 |  479 -------
> > >  src/intel/vulkan/anv_meta_resolve.c              |  870 ------------
> > >  src/intel/vulkan/anv_pipeline.c                  |  142 --
> > >  src/intel/vulkan/anv_private.h                   |   33 +-
> > >  src/intel/vulkan/genX_blorp_exec.c               |  259 ++++
> > >  src/intel/vulkan/genX_pipeline_util.h            |  173 ++-
> > >  src/mesa/drivers/dri/i965/brw_blorp.c            |   32 +-
> > >  src/mesa/drivers/dri/i965/brw_wm_surface_state.c |   31 +-
> > >  src/mesa/drivers/dri/i965/genX_blorp_exec.c      |   11 +-
> > >  30 files changed, 1873 insertions(+), 4155 deletions(-)
> > >  create mode 100644 src/intel/vulkan/anv_blorp.c
> > >  delete mode 100644 src/intel/vulkan/anv_meta_blit.c
> > >  delete mode 100644 src/intel/vulkan/anv_meta_blit2d.c
> > >  delete mode 100644 src/intel/vulkan/anv_meta_copy.c
> > >  delete mode 100644 src/intel/vulkan/anv_meta_resolve.c
> > >  create mode 100644 src/intel/vulkan/genX_blorp_exec.c
> > >
> > > --
> > > 2.5.0.400.gff86faf
> > >
> > >
> 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list