[Mesa-dev] [PATCH 00/23] anv: Implement VK_ANDROID_native_buffer (v2)
Tapani Pälli
tapani.palli at intel.com
Thu Sep 14 08:21:49 UTC 2017
Patches 1-8:
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
(also tested/verified dEQP results for patch 8)
I've sent some changes I needed in order this to work in Android-IA here:
https://lists.freedesktop.org/archives/mesa-dev/2017-September/169603.html
On 09/14/2017 02:03 AM, Chad Versace wrote:
> From: Chad Versace <chadversary at chromium.org>
>
> This series adds Android support to Anvil. And Android requires
> VK_ANDROID_native_buffer.
>
>
> I tested the series on 64-bit ARC++ on a Skylake Chromebook with a 3.18
> kernel. (ARC++ is the Android container in Chrome OS). (Yes, I said 3.18.
> That's not a typo).
>
>
> Here's my test results:
>
> - A little, spinning cube demo APK works, proving that the window
> system integration is, if not fully correct, at least good enough.
>
> - On Linux (non-Android), this patch series causes no regressions in
> VK-GL-CTS (master at dfcb8e87) under Wayland.
>
> - On Android, in patchset v1, dEQP from
> android-cts-7.1_r8-linux_x86-x86 had 1 failure. I'm still waiting
> for the results for patchset v2.
>
> Passed: 66889/81423 (82.2%)
> Failed: 1/81423 (0.0%)
> Not supported: 14529/81423 (17.8%)
> Warnings: 4/81423 (0.0%)
>
> The sole failure was
> dEQP-VK.pipeline.image_view.view_type.cube_array.format.r16g16_sint.component_swizzle.one_r_g_zero
>
>
> The exact code tested, and this patch series, live at:
> tag chadv/review/arc-vulkan-v02
> url git://git.kiwitree.net/~chadv/mesa
> cgit http://git.kiwitree.net/cgit/~chadv/mesa/tag/?h=chadv/review/arc-vulkan-v02
>
>
> Note that Mesa's ARC++ build uses Autotools, not Android.mk. This series
> probably broke the Android.mk files. Someone, please review and test
> that.
>
>
> Each patch but the last is just prep. You should read the last patch
> first to better understand the goal, then afterwards review the series
> linearly from the beginning.
>
>
> v2:
> - A few patches have already landed on master.
> - Drop the ugly flag params from anv_bo_cache_import(), for jekstrand.
> - Reject VkNativeBufferANDROID if the dma-buf's size is too small for
> the VkImage.
> - Stop abusing VkNativeBufferANDROID by passing it to vkAllocateMemory
> during vkCreateImage. Instead, directly import its dma-buf during
> vkCreateImage with anv_bo_cache_import(). [for jekstrand]
> - Rebase onto Tapani's VK_EXT_debug_report changes.
>
>
> Chad Versace (20):
> vulkan: Import vk_android_native_buffer.h
> vulkan: Add #ifdef hack to vk_android_native_buffer.h
> vulkan/registry: Add VK_ANDROID_native_buffer
> vulkan/util: Teach gen_enum_to_str.py to parse mutliple XML files
> vulkan/registry: Feed vk_android_native_buffer.xml to
> gen_enum_to_str.py
> anv: Teach generator scripts how to parse mutliple XML files
> anv: Feed vk_android_native_buffer.xml to generators
> anv/android: Disable surface and swapchain extensions (v2)
> anv: Link to Android libraries in the autotools build
> intel: Move definition of LOG_TAG from header into Makefiles
> intel: Add simple logging façade for Android
> anv: Better support for Android logging (v2)
> anv/image: Better var names for image-create-info structs
> anv/image: Refactor how tiling is chosen
> anv/image: Refactor creation of aux surfaces (v2)
> anv: Add field anv_image::bo_is_owned
> anv: Move close(fd) from anv_bo_cache_import to its callers
> anv: Add sizeless anv_bo_cache_import()
> anv: Add func anv_gem_get_tiling()
> anv: Implement VK_ANDROID_native_buffer (v2)
>
> include/vulkan/vk_android_native_buffer.h | 96 +++++
> src/Makefile.am | 2 +
> src/intel/Android.blorp.mk | 2 +
> src/intel/Android.common.mk | 2 +
> src/intel/Android.vulkan.mk | 21 +-
> src/intel/Makefile.am | 3 +-
> src/intel/Makefile.sources | 7 +-
> src/intel/Makefile.vulkan.am | 24 +-
> src/intel/common/gen_debug.h | 1 -
> src/intel/common/intel_log.c | 87 +++++
> src/intel/common/intel_log.h | 82 +++++
> src/intel/vulkan/anv_allocator.c | 126 ++++---
> src/intel/vulkan/anv_android.c | 245 +++++++++++++
> src/intel/vulkan/anv_device.c | 41 ++-
> src/intel/vulkan/anv_entrypoints_gen.py | 28 +-
> src/intel/vulkan/anv_extensions.py | 51 ++-
> src/intel/vulkan/anv_gem.c | 16 +
> src/intel/vulkan/anv_image.c | 443 ++++++++++++++++-------
> src/intel/vulkan/anv_intel.c | 6 +-
> src/intel/vulkan/anv_private.h | 18 +-
> src/intel/vulkan/anv_queue.c | 5 +-
> src/intel/vulkan/anv_util.c | 21 +-
> src/intel/vulkan/genX_cmd_buffer.c | 4 +-
> src/mesa/drivers/dri/i965/Android.mk | 23 +-
> src/mesa/drivers/dri/i965/Makefile.am | 1 +
> src/vulkan/Android.mk | 9 +-
> src/vulkan/Makefile.am | 9 +-
> src/vulkan/registry/vk_android_native_buffer.xml | 52 +++
> src/vulkan/util/gen_enum_to_str.py | 39 +-
> 29 files changed, 1197 insertions(+), 267 deletions(-)
> create mode 100644 include/vulkan/vk_android_native_buffer.h
> create mode 100644 src/intel/common/intel_log.c
> create mode 100644 src/intel/common/intel_log.h
> create mode 100644 src/intel/vulkan/anv_android.c
> create mode 100644 src/vulkan/registry/vk_android_native_buffer.xml
>
More information about the mesa-dev
mailing list