[Mesa-dev] [PATCH 00/16] loader: unify loader codepaths

Emil Velikov emil.l.velikov at gmail.com
Tue Oct 11 18:31:44 UTC 2016

Hi all,

I've been 'threatening' to do this for a while, so here it is:

Remove the three separate code paths that we have in the loader giving 
is a since cleanup and consistent/predictable runtime behaviour across 
the board. Not to mention some 100 lines removed from configure.ac and 
an extra ~400 lines removed throughout the tree.

What this series does:
 - Changes/unifies how we retrieve the vendor/device pci id.
 Removes the ioctl, libudev and sysfs codepaths in favour of using the 
libdrm drm*Device API effectively adding "PRIME support" for non-libudev 
users ;-) We also get one configure toggle less in the process.

What it does _not_ do:
 - Any changes on the mapping process between the fd/device id and the 
device/driver name.
 Stuff such as hwdb, platform devices and respective mapping between the 
lot is _not_ touched/covered.

I've been touch using it, on an off for about a week, but any extra 
testing, review and input is appreciated. 


Emil Velikov (16):
  configure.ac: mark libdrm as have_pci_id provider
  loader: slim down loader_get_pci_id_for_fd implementation(s)
  loader: separate USE_DRICONF code into separate function
  loader: annotate __driConfigOptionsLoader as static
  loader: reimplement loader_get_user_preferred_fd via libdrm
  loader: remove libudev_get_device_name_for_fd and related code
  automake: remove all the libudev references
  gbm: remove superfluous/incorrect udev comment
  scons: loader: use libdrm when available
  scons: remove all libudev references
  travis: remove no longer needed liudev-dev dependency
  loader: remove final sysfs codepath in loader_get_device_name_for_fd()
  loader: remove loader_get_driver_for_fd() driver_type
  loader: cleanup copyright section
  configure.ac: remove no longer needed *_pci_id logic
  configure.ac: use a single require_libdrm helper

 .travis.yml                                        |   1 -
 configure.ac                                       | 112 +---
 scons/gallium.py                                   |   1 -
 src/egl/drivers/dri2/platform_android.c            |   2 +-
 src/egl/drivers/dri2/platform_surfaceless.c        |   2 +-
 src/egl/drivers/dri2/platform_wayland.c            |   2 +-
 src/egl/drivers/dri2/platform_x11.c                |   2 +-
 src/egl/drivers/dri2/platform_x11_dri3.c           |   2 +-
 .../auxiliary/pipe-loader/pipe_loader_drm.c        |   2 +-
 src/gbm/backends/dri/gbm_dri.c                     |   2 +-
 src/gbm/main/gbm.c                                 |   1 -
 src/glx/dri2_glx.c                                 |   2 +-
 src/glx/dri3_glx.c                                 |   2 +-
 src/loader/Makefile.am                             |   3 +-
 src/loader/SConscript                              |   6 +-
 src/loader/loader.c                                | 622 ++++-----------------
 src/loader/loader.h                                |   5 +-
 src/loader/pci_id_driver_map.h                     |  23 +-
 18 files changed, 150 insertions(+), 642 deletions(-)


More information about the mesa-dev mailing list