[Mesa-dev] [PATCH 2/2] egl/surfaceless: Use KMS swrast fallback

Eric Engestrom eric.engestrom at imgtec.com
Tue Oct 3 14:02:17 UTC 2017


On Monday, 2017-10-02 20:48:24 +0000, gurchetansingh at chromium.org wrote:
> From: Gurchetan Singh <gurchetansingh at chromium.org>
> 
> The kms_swrast extension is an actively developed software fallback,
> and platform_surfaceless can use it if there are no available
> hardware drivers.
> 
> v2: Split into 2 patches, use booleans, check LIBGL_ALWAYS_SOFTWARE,
>     and modify the eglLog level (Emil, Eric, Tomasz).

Thanks, this is perfect :)

Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>

Do you want me to push this for you?

It might be worth running deqp and other test suites to make sure
everything is wired up correctly.
(Given your chromium affiliation, I'm assuming you already know how to
use the surfaceless patches for deqp [1])

[1] https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/media-gfx/deqp

> ---
>  src/egl/drivers/dri2/platform_surfaceless.c | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
> 
> diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c
> index f6aa217d39..b0a43ac9de 100644
> --- a/src/egl/drivers/dri2/platform_surfaceless.c
> +++ b/src/egl/drivers/dri2/platform_surfaceless.c
[snip]
> @@ -320,7 +324,14 @@ dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay *disp)
>  
>     dri2_dpy->fd = -1;
>     disp->DriverData = (void *) dri2_dpy;

Nit: newline here
(I'll add it if/when I commit it, don't send a v3 for that)

> -   if (!surfaceless_probe_device(disp)) {
> +   if (!env_var_as_boolean("LIBGL_ALWAYS_SOFTWARE", false)) {
> +      driver_loaded = surfaceless_probe_device(disp, false);
> +      if (!driver_loaded)
> +         _eglLog(_EGL_WARNING, "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;
>     }
> -- 
> 2.13.5
> 


More information about the mesa-dev mailing list