On Tuesday, 2019-02-05 15:31:06 +0000, Emil Velikov wrote: > From: Emil Velikov <emil.veli...@collabora.com> > > Make the code a bit easier to read. > > As a bonus point this makes it obvious that we forgot to call > _eglAddDevice() for the device - do so. > > Signed-off-by: Emil Velikov <emil.veli...@collabora.com> > --- > src/egl/drivers/dri2/platform_surfaceless.c | 46 ++++++++++++--------- > 1 file changed, 27 insertions(+), 19 deletions(-) > > diff --git a/src/egl/drivers/dri2/platform_surfaceless.c > b/src/egl/drivers/dri2/platform_surfaceless.c > index f9809561611..d6e48ba11b2 100644 > --- a/src/egl/drivers/dri2/platform_surfaceless.c > +++ b/src/egl/drivers/dri2/platform_surfaceless.c > @@ -322,25 +322,27 @@ surfaceless_probe_device(_EGLDisplay *dpy, bool swrast) > dri2_dpy->loader_extensions = NULL; > } > > - /* No DRM device, so attempt to fall back to software path w/o DRM. */ > - if (swrast) { > - _eglLog(_EGL_DEBUG, "Falling back to surfaceless swrast without DRM."); > - dri2_dpy->fd = -1; > - dri2_dpy->driver_name = strdup("swrast"); > - if (!dri2_dpy->driver_name) { > - return false; > - } > + return false; > +} > > - if (dri2_load_driver_swrast(dpy)) { > - dri2_dpy->loader_extensions = swrast_loader_extensions; > - return true; > - } > +static bool > +surfaceless_probe_device_sw(_EGLDisplay *dpy)
Don't forget to rename s/dpy/disp/ :) > +{ > + struct dri2_egl_display *dri2_dpy = dpy->DriverData; > > - free(dri2_dpy->driver_name); > - dri2_dpy->driver_name = NULL; > - } > + dri2_dpy->fd = -1; > + dpy->Device = _eglAddDevice(dri2_dpy->fd, true); > + assert(dpy->Device); > > - return false; > + dri2_dpy->driver_name = strdup("swrast"); > + if (!dri2_dpy->driver_name) > + return false; > + > + if (!dri2_load_driver_swrast(dpy)) free(dri2_dpy->driver_name); With that: Reviewed-by: Eric Engestrom <eric.engest...@intel.com> > + return false; > + > + dri2_dpy->loader_extensions = swrast_loader_extensions; > + return true; > } > > EGLBoolean > @@ -364,9 +366,15 @@ dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay > *disp) > "No hardware driver found, falling back to software > rendering"); > } > > - if (!driver_loaded && !surfaceless_probe_device(disp, true)) { > - err = "DRI2: failed to load driver"; > - goto cleanup; > + if (!driver_loaded) > + driver_loaded = surfaceless_probe_device(disp, true); > + > + if (!driver_loaded) { > + _eglLog(_EGL_DEBUG, "Falling back to surfaceless swrast without DRM."); > + if (!surfaceless_probe_device_sw(disp)) { > + err = "DRI2: failed to load driver"; > + goto cleanup; > + } > } > > if (!dri2_create_screen(disp)) { > -- > 2.20.1 > > _______________________________________________ > mesa-dev mailing list > 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