>> We have a dependency on gralloc in the EGL layer so that is why I don't see 
>> it as a problem for Vulkan WSI.

It’s true. In Android O dessert (not released yet), all HALs except for OpeGL 
and Vulcan need to be wrapped by HIDL and binderized now. While I guess Google 
wants to avoid this kind of usage and tries to solve it.



From: Palli, Tapani
Sent: Wednesday, March 1, 2017 1:33 PM
To: Xu, Randy <randy...@intel.com>; Jason Ekstrand <ja...@jlekstrand.net>
Cc: mesa-dev@lists.freedesktop.org
Subject: Re: [Mesa-dev] [PATCH] Vulkan: Add VK_ANDROID_native_buffer to device 
extension list

On 03/01/2017 07:21 AM, Xu, Randy wrote:
Hi, Tapani

According to https://source.android.com/devices/graphics/implement-vulkan.html
"Window System Integration (WSI) extensions are exported by the loader and 
primarily implemented in it rather than the driver.". Also, Google provides the 
stubhal.c in frameworks/native/vulkan/libvulkan, the VK_ANDROID_native_buffer 
functions are implemented there as a sample.
The reason I guess is that VK_ANDROID_native_buffer implementation needs to 
access Gralloc HAL data structure, but mesa driver should have no dependency to 
Android HAL, which is required by HAL Binderization.


We have a dependency on gralloc in the EGL layer so that is why I don't see it 
as a problem for Vulkan WSI.

I'm OK with having it in HAL but maybe we should still spend some time to 
figure out a way to expose extension from there (inject string to extensions 
list in a way or another). Loader wraps extension list and exposes different 
one to applications than it has from driver, maybe should take some look there 
how it does all this.



This patch doesn’t expose VK_ANDROID_native_buffer extension in driver (as the 
function is not implemented here), but avoid screening it when create device.

Thanks,
Randy

From: Palli, Tapani
Sent: Wednesday, March 1, 2017 1:03 PM
To: Jason Ekstrand <ja...@jlekstrand.net><mailto:ja...@jlekstrand.net>; Xu, 
Randy <randy...@intel.com><mailto:randy...@intel.com>
Cc: mesa-dev@lists.freedesktop.org<mailto:mesa-dev@lists.freedesktop.org>
Subject: Re: [Mesa-dev] [PATCH] Vulkan: Add VK_ANDROID_native_buffer to device 
extension list

On 03/01/2017 06:17 AM, Jason Ekstrand wrote:
On Tue, Feb 28, 2017 at 7:52 PM, Randy Xu 
<randy...@intel.com<mailto:randy...@intel.com>> wrote:
The VK_ANDROID_native_buffer is implemented in Android Vulkan HAL,
not driver, but must be claimed in device extension list. Otherwise,
this extension will be screened off in framework and driver.

This seems rather odd.  Can't the Vulkan HAL just hook into 
vkEnumerateDeviceExtensionProperties and add it to the list there?  It seems a 
bit odd to advertise an extension but not actually provide any of the 
functionality.

This was my question as well. I proposed Randy to include functionality, at the 
moment it would be along these lines:

https://github.com/android-ia/external-mesa/commit/8b6b2fc4de933c03feba33e5b57c20262e7983cc

I don't have a strong preference where functionality exists but it seems like 
ideally the whole thing would exist in one single component. If the extension 
list cannot be modified in HAL then this becomes harder to achieve in HAL.



Test: Pass Vulkan dEQP-VK.wsi.android.swapchain.* on Android platform

Signed-off-by: Randy Xu <randy...@intel.com<mailto:randy...@intel.com>>
---
 Android.common.mk<http://Android.common.mk>             | 3 +++
 src/intel/vulkan/anv_device.c | 9 +++++++++
 2 files changed, 12 insertions(+)

diff --git a/Android.common.mk<http://Android.common.mk> 
b/Android.common.mk<http://Android.common.mk>
index 611162a..f49189b 100644
--- a/Android.common.mk<http://Android.common.mk>
+++ b/Android.common.mk<http://Android.common.mk>
@@ -116,6 +116,9 @@ else
   LOCAL_CFLAGS += 
-DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
 endif

+# Enable VK_ANDROID_native_buffer
+LOCAL_CFLAGS += -DVK_USE_PLATFORM_ANDROID_KHR
+
 # uncomment to keep the debug symbols
 #LOCAL_STRIP_MODULE := false

diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 0db96f2..478d753 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -258,6 +258,15 @@ static const VkExtensionProperties device_extensions[] = {
       .extensionName = VK_KHR_MAINTENANCE1_EXTENSION_NAME,
       .specVersion = 1,
    },
+#ifdef VK_USE_PLATFORM_ANDROID_KHR
+   {
+      // Refer 
https://source.android.com/devices/graphics/implement-vulkan.html
+      // "Window System Integration (WSI) extensions are exported by the loader
+      //  and primarily implemented in it rather than the driver."
+      .extensionName = "VK_ANDROID_native_buffer",

In the other places, we use the EXTENSION_NAME #define

+      .specVersion = 1,
+   },
+#endif
    {
       .extensionName = VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME,
       .specVersion = 1,
--
2.7.4

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






_______________________________________________

mesa-dev mailing list

mesa-dev@lists.freedesktop.org<mailto:mesa-dev@lists.freedesktop.org>

https://lists.freedesktop.org/mailman/listinfo/mesa-dev




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

Reply via email to