Skip to content
  • Emil Velikov's avatar
    egl/android: rework device probing · b8b3517a
    Emil Velikov authored
    
    
    Unlike the other platforms, here we aim do guess if the device that we
    somewhat arbitrarily picked, is supported or not.
    
    In particular: when a vendor is _not_ requested we loop through all
    devices, picking the first one which can create a DRI screen.
    
    When a vendor is requested - we use that and do _not_ fall-back to any
    other device.
    
    The former seems a bit fiddly, but considering EGL_EXT_explicit_device and
    EGL_MESA_query_renderer are MIA, this is the best we can do for the
    moment.
    
    With those (proposed) extensions userspace will be able to create a
    separate EGL display for each device, query device details and make the
    conscious decision which one to use.
    
    v2:
     - update droid_open_device_drm_gralloc()
     - set the dri2_dpy->fd before using it
     - return a EGLBoolean for droid_{probe,open}_device*
     - do not warn on droid_load_driver failure (Tomasz)
     - plug mem leak on dri2_create_screen failure (Tomasz)
     - fixup function name typo (Tomasz, Rob)
    
    v3:
     - add forward declaration for droid_load_driver()
    Fixes the HAVE_DRM_GRALLOC build (Mauro)
     - split dup() assignment and check in separate lines (Tomasz, Eric)
     - make droid_load_driver() static (Tomasz)
     - drop unused prop_set variable (Tomasz)
    
    v4:
     - rebase
     - fwd declarationi should be for droid_probe_device()
    
    Cc: Robert Foss <robert.foss@collabora.com>
    Cc: Tomasz Figa <tfiga@chromium.org>
    Cc: Mauro Rossi <issor.oruam@gmail.com>
    Signed-off-by: default avatarEmil Velikov <emil.velikov@collabora.com>
    Reviewed-by: default avatarTomasz Figa <tfiga@chromium.org>
    Tested-by: default avatarTomasz Figa <tfiga@chromium.org>
    Tested-by: default avatarTapani Pälli <tapani.palli@intel.com>
    b8b3517a