[Mesa-dev] [PATCH 00/16] anv: Fix our 48-bit problems
Jason Ekstrand
jason at jlekstrand.net
Thu May 18 21:00:47 UTC 2017
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(-)
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list