[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