[Mesa-dev] [PATCH] gbm: Replace GBM_DRIVERS_PATH with LIBGL_DRIVERS_PATH

Kenneth Graunke kenneth at whitecape.org
Sat Jul 19 09:51:40 PDT 2014


On Saturday, July 19, 2014 01:50:39 PM Emil Velikov wrote:
> On 18/07/14 17:27, Kenneth Graunke wrote:
> > On Friday, July 18, 2014 07:41:57 AM Dylan Baker wrote:
> >> Currently mesa searches for two different environment variables,
> >> LIBGL_DRIVERS_PATH and GBM_DRIVERS_PATH. The first is used for search
> >> for DRI drivers in every case except GBM, and the latter is used
> >> exclusively for setting GBM drivers. This patch simplifies things by
> >> having just one variable to set.
> >>
> >> Signed-off-by: Dylan Baker <baker.dylan.c at gmail.com>
> >> ---
> >>  src/gbm/backends/dri/gbm_dri.c | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
> >> index 347bc99..9d9d1c4 100644
> >> --- a/src/gbm/backends/dri/gbm_dri.c
> >> +++ b/src/gbm/backends/dri/gbm_dri.c
> >> @@ -212,8 +212,8 @@ dri_load_driver(struct gbm_dri_device *dri)
> >>  
> >>     search_paths = NULL;
> >>     if (geteuid() == getuid()) {
> >> -      /* don't allow setuid apps to use GBM_DRIVERS_PATH */
> >> -      search_paths = getenv("GBM_DRIVERS_PATH");
> >> +      /* don't allow setuid apps to use LIBGL_DRIVERS_PATH */
> >> +      search_paths = getenv("LIBGL_DRIVERS_PATH");
> >>     }
> >>     if (search_paths == NULL)
> >>        search_paths = DEFAULT_DRIVER_DIR;
> >>
> > 
> > I'm definitely a fan of moving to LIBGL_DRIVERS_PATH for everything - GBM_DRIVERS_PATH is just another environment variable to forget to set properly.
> > 
> > As is, this is:
> > Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> > 
> > Are people okay with just moving to LIBGL_DRIVERS_PATH completely like this?  Or do people want it to check GBM_DRIVERS_PATH then fall back to LIBGL_DRIVERS_PATH?  Or use $GBM_DRIVERS_PATH:$LIBGL_DRIVERS_PATH?
> > 
> A few thoughts of a blurry mind (sorry I'm out of coffee):
> 
> I can envision at least at couple of use-cases where either of the above will
> cause more harm than good, yet I feel that affected people will come here
> after spending hours of debugging/bisecting.
> 
> IMHO the "one variable to rule them all" while convenient (set only
> LIBGL_DRIVERS_PATH in your debug scripts/session), is not at all useful. If
> the only issue is "I always forget to set it", I believe that it's not a thing
> that should be addressed in mesa.
> 
> This is more of a food for thought than anything else.
> -Emil

But I don't understand the utility of having libGL and GBM use different driver paths.  When is that ever useful?  People have asked me on many occasions why there are two environment variables (usually after getting bitten by this), and the only explanation I could think of was "because somebody wrote it that way", i.e. a historical accident.  Which isn't a good reason.

If there /is/ a compelling reason to keep both, then I'd like to hear about it.
In particular, if anyone here uses GBM, and actually sets GBM_DRIVERS_PATH and LIBGL_DRIVERS_PATH separately, please, speak up...

--Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140719/b383e750/attachment-0001.sig>


More information about the mesa-dev mailing list