[Mesa-dev] [Mesa-stable] [PATCH 00/16] anv: Fix our 48-bit problems

Andres Gomez agomez at igalia.com
Mon Jun 26 20:15:00 UTC 2017


Jason, you CCed this whole series for stable. However:
 * Patch 1/16 already landed, but without the -stable tag. Should it be
   cherry-picked? It looks like yes.
 * Patch 2/16 did not land. Is it in need of review or it has been
   superseded?
 * Patches 3-15/16 were already cherry-picked in the 17.1.2 release.
 * Patch 16/16 has not landed yet. Is it in need of review or it has
   been superseded? Not sure if we want to cherry-pick it in any case
   ...

Please, let us know when you can.

Thanks!

On Thu, 2017-05-18 at 14:00 -0700, Jason Ekstrand wrote:
> This patch series aims to fix the remaining 48-bit problems in the Vulkan
> driver.  As such, the entire thing will be CC'd to stable before landing.
> 
> The first 5 patches fix the driver to handle memory aliasing correctly.
> Vulkan allows you to bind multiple buffers or images to overlapping memory
> regions so long as you get your layout transitions correct.  Up until now,
> we've been doing a memset at vkBindImageMemory time to initialize auxiliary
> surfaces which isn't valid in light of aliasing.  Instead, these patches
> provide actual support for layout transitions from UNDEFINED to other
> layouts.  This isn't actually a 48-bit issue but the other patches cause a
> change in the behavior of some CTS tests which makes them start failing due
> to memory aliasing problems.
> 
> The next 10 patches refactor memory type setup and make us advertise 2
> heaps on platforms with a lot of memory.  For justification, see the
> comment in patch 15.
> 
> The last patch just extends the new pass added in patch 2 for gen7-8.  It's
> fairly straightforward but completely untested.  Hopefully it will help
> Nanley or someone else if they ever need it.
> 
> Cc: "17.1" <mesa-stable at lists.freedesktop.org>
> Cc: Nanley Chery <nanley.g.chery at intel.com>
> 
> Jason Ekstrand (16):
>   isl: Make get_intratile_offset_el take the element size in bits
>   intel/blorp: Add a CCS ambiguation pass
>   anv: Handle color layout transitions from the UNINITIALIZED layout
>   anv: Handle transitioning depth from UNDEFINED to other layouts
>   anv/image: Get rid of the memset(aux, 0, sizeof(aux)) hack
>   anv: Predicate 48bit support on gen >= 8
>   anv: Set up memory types and heaps during physical device init
>   anv: Determine the type of mapping based on type metadata
>   anv: Add valid_bufer_usage to the memory type metadata
>   anv: Set image memory types based on the type count
>   anv: Stop setting BO flags in bo_init_new
>   anv: Make supports_48bit_addresses a heap property
>   anv: Refactor memory type setup
>   anv: Advertise both 32-bit and 48-bit heaps when we have enough memory
>   anv: Require vertex buffers to come from a 32-bit heap
>   intel/blorp: Add gen7-8 support to ccs_ambiguate
> 
>  src/intel/blorp/blorp.h                |   5 +
>  src/intel/blorp/blorp_clear.c          | 159 +++++++++++++++++++++++++-
>  src/intel/isl/isl.c                    |   7 +-
>  src/intel/isl/isl.h                    |   6 +-
>  src/intel/vulkan/anv_allocator.c       |  17 +--
>  src/intel/vulkan/anv_blorp.c           |  40 +++++++
>  src/intel/vulkan/anv_device.c          | 201 ++++++++++++++++++++++++---------
>  src/intel/vulkan/anv_image.c           |  40 ++-----
>  src/intel/vulkan/anv_private.h         |  33 +++++-
>  src/intel/vulkan/anv_queue.c           |   4 +-
>  src/intel/vulkan/genX_cmd_buffer.c     |  33 ++++--
>  src/mesa/drivers/dri/i965/intel_blit.c |   2 +-
>  12 files changed, 428 insertions(+), 119 deletions(-)
> 
-- 
Br,

Andres


More information about the mesa-dev mailing list