FYI now I've noticed that SkQP runs some new tests as well .. most of them are passing but there are 2 failures. Will start to investigate this.

Results were:

unitTest_VulkanHardwareBuffer_CPU_EGL pass
unitTest_VulkanHardwareBuffer_CPU_Vulkan pass
unitTest_VulkanHardwareBuffer_EGL_EGL pass
unitTest_VulkanHardwareBuffer_EGL_EGL_Syncs pass
unitTest_VulkanHardwareBuffer_EGL_Vulkan pass
unitTest_VulkanHardwareBuffer_EGL_Vulkan_Syncs pass
unitTest_VulkanHardwareBuffer_Vulkan_EGL pass
unitTest_VulkanHardwareBuffer_Vulkan_EGL_Syncs fail
unitTest_VulkanHardwareBuffer_Vulkan_Vulkan pass
unitTest_VulkanHardwareBuffer_Vulkan_Vulkan_Syncs fail

// Tapani

On 10/30/18 7:25 AM, Tapani Pälli wrote:
Hi;

Here are fixes to earlier series with some refactoring, addressing
Jason's comments and fixing some bugs I found when running Android CTS
suite.

With these changes following android.graphics.cts.BasicVulkanGpuTest
tests start to pass:

  testBasicBufferImportAndRenderingExternalFormat
  testBasicBufferImportAndRenderingExplicitFormat

for these formats:

  AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM
  AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM
  AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM
  AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM

Format AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM is skipped by CTS since it
was recently removed from minigbm gralloc implementation due to other
tests for this format not passing and apparently Android does not
mandate this format for GPU usage.

Support for YUV format(s) is left for the future. This means that
following test does not pass:

  android.graphics.cts.MediaVulkanGpuTest#testMediaImportAndRendering

Making it work will need some discussion with Media folks and adding
support for HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL. I had already some
look in to this but I'd like to work on that separately from this
series.

dEQP results (dEQP-VK.api.external.memory.android_hardware_buffer*):

  dEQP    :   Passed:        22/29 (75.9%)
  dEQP    :   Failed:        0/29 (0.0%)
  dEQP    :   Not supported: 7/29 (24.1%)
  dEQP    :   Warnings:      0/29 (0.0%)

Tree with these changes available here:
https://cgit.freedesktop.org/~tpalli/mesa/log/?h=ahw

And here is a Android Celadon compatible tree:
https://github.com/tpalli/external-mesa/tree/ahw-android

No regressions spotted by Intel CI. Any comments appreciated!

Tapani Pälli (15):
   anv: add create_flags as part of anv_image
   anv: refactor make_surface to use data from anv_image
   anv: make anv_get_image_format_features public
   anv: add from/to helpers with android and vulkan formats
   anv/android: add GetAndroidHardwareBufferPropertiesANDROID
   anv: add anv_ahw_usage_from_vk_usage helper function
   anv: refactor, remove else block in AllocateMemory
   anv/android: support import/export of AHardwareBuffer objects
   anv/android: add ahardwarebuffer external memory properties
   anv/android: support creating images from external format
   anv: support VkExternalFormatANDROID in vkCreateSamplerYcbcrConversion
   anv: introduce helper to resolve vk_format from anv_format
   anv: support VkSamplerYcbcrConversionInfo in vkCreateImageView
   anv: ignore VkSamplerYcbcrConversion on non-yuv formats
   anv/android: turn on
     VK_ANDROID_external_memory_android_hardware_buffer

  src/intel/vulkan/anv_android.c     | 303 +++++++++++++++++++++++++++++
  src/intel/vulkan/anv_device.c      | 109 ++++++++---
  src/intel/vulkan/anv_extensions.py |   1 +
  src/intel/vulkan/anv_formats.c     | 101 ++++++++--
  src/intel/vulkan/anv_image.c       | 205 +++++++++++++++----
  src/intel/vulkan/anv_private.h     |  45 +++++
  src/intel/vulkan/genX_state.c      |   7 +-
  src/intel/vulkan/vk_format_info.h  |  43 ++++
  8 files changed, 731 insertions(+), 83 deletions(-)

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

Reply via email to