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-sta...@lists.freedesktop.org> Cc: Nanley Chery <nanley.g.ch...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev