[Mesa-dev] [PATCH 1/2] anv: stub internal android code

Eric Engestrom eric.engestrom at intel.com
Tue Nov 6 12:52:42 UTC 2018


On Tuesday, 2018-11-06 12:42:20 +0000, Lionel Landwerlin wrote:
> On 06/11/2018 12:20, Eric Engestrom wrote:
> > On Tuesday, 2018-11-06 11:37:50 +0000, Lionel Landwerlin wrote:
> > > This reduces the amount of #ifdef ANDROID we'll have to have inside
> > > the driver. Potentially offering better coverage of the android
> > > extensions.
> > > 
> > > Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> > > ---
> > >   src/intel/Makefile.sources           |  4 +++
> > >   src/intel/Makefile.vulkan.am         |  3 ++-
> > >   src/intel/vulkan/anv_android.h       | 37 ++++++++++++++++++++++++++++
> > >   src/intel/vulkan/anv_android_stubs.c | 34 +++++++++++++++++++++++++
> > >   src/intel/vulkan/anv_image.c         |  2 --
> > >   src/intel/vulkan/anv_private.h       | 10 +-------
> > >   src/intel/vulkan/meson.build         |  2 ++
> > >   7 files changed, 80 insertions(+), 12 deletions(-)
> > >   create mode 100644 src/intel/vulkan/anv_android.h
> > >   create mode 100644 src/intel/vulkan/anv_android_stubs.c
> > > 
[snip]
> > > diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
> > > index e89ce012be7..fdb13c2938a 100644
> > > --- a/src/intel/vulkan/anv_image.c
> > > +++ b/src/intel/vulkan/anv_image.c
> > > @@ -631,14 +631,12 @@ anv_CreateImage(VkDevice device,
> > >                   const VkAllocationCallbacks *pAllocator,
> > >                   VkImage *pImage)
> > >   {
> > > -#ifdef ANDROID
> > >      const VkNativeBufferANDROID *gralloc_info =
> > >         vk_find_struct_const(pCreateInfo->pNext, NATIVE_BUFFER_ANDROID);
> > I assume this is never going to match on non-android, right?
> > 
> > If that's true:
> > Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
> 
> 
> Even if it does, the stub will return EXTENSION_NOT_PRESENT.

Yes, but then:

> > >      if (gralloc_info)
> > >         return anv_image_from_gralloc(device, pCreateInfo, gralloc_info,
> > >                                       pAllocator, pImage);

This would return EXTENSION_NOT_PRESENT meaning android is not available
on non-android platforms, instead of falling through to the next attempt
with anv_image_create() below.

Maybe it needs to be changed to something like this then?

   if (gralloc_info) {
      VkResult res = anv_image_from_gralloc(device, pCreateInfo, gralloc_info,
                                            pAllocator, pImage);
      if (res != VK_ERROR_EXTENSION_NOT_PRESENT)
         return res;
   }


> > > -#endif
> > >      return anv_image_create(device,
> > >         &(struct anv_image_create_info) {


More information about the mesa-dev mailing list