egl/drm: reinstate (kms_)swrast support

With earlier commit we've added a generic LIBGL_ALWAYS_SOFTWARE handling
yet did not consider that the existing codebase unconditionally errors
out when set. That was fixed with a latter commit, while the fix itself
added erroneous restriction for egl/drm.

As mentioned in the report - the feature was working for ages. It was a
Gnome developer who added kms_swrast support for gbm in the first place.

Admittedly kms_swrast is somewhat in the middle between traditional
swrast and HW drivers, regardless - reinstate support.

Fixes: 47273d7312 ("egl: set UseFallback if LIBGL_ALWAYS_SOFTWARE is set")
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/165
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4084>
(cherry picked from commit fa5e800e05)
This commit is contained in:
Emil Velikov 2020-03-04 18:33:09 +00:00 committed by Dylan Baker
parent c9f4058183
commit e594e7fa27
2 changed files with 2 additions and 6 deletions

View file

@ -2785,7 +2785,7 @@
"description": "egl/drm: reinstate (kms_)swrast support",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "47273d7312cb5b5b6b0b9faa814d574bbbce1c01"
},

View file

@ -695,10 +695,6 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
struct gbm_device *gbm;
const char *err;
/* Not supported yet */
if (disp->Options.ForceSoftware)
return EGL_FALSE;
dri2_dpy = calloc(1, sizeof *dri2_dpy);
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
@ -732,7 +728,7 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
goto cleanup;
}
dev = _eglAddDevice(dri2_dpy->fd, false);
dev = _eglAddDevice(dri2_dpy->fd, disp->Options.ForceSoftware);
if (!dev) {
err = "DRI2: failed to find EGLDevice";
goto cleanup;