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(-)

-- 
2.17.2

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

Reply via email to