Patches 1-8:
Reviewed-by: Tapani Pälli <tapani.pa...@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 <chadvers...@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@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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to