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

Jason Ekstrand jason at jlekstrand.net
Mon Sep 5 16:38:59 UTC 2016


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.

--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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160905/13b82f37/attachment-0001.html>


More information about the mesa-dev mailing list