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