mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 22:38:05 +02:00
egl/surfaceless: Allow DRMless fallback.
Allow platform_surfaceless to use swrast even if DRM is not available. To be used to allow a fuzzer for virgl to be run on a jailed VM without hardware GL or DRM support. Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Chad Versace <chadversary@chromium.org> Signed-off-by: David Riley <davidriley@chromium.org>
This commit is contained in:
parent
b169b84be6
commit
f94681b6e2
1 changed files with 19 additions and 0 deletions
|
|
@ -293,6 +293,7 @@ surfaceless_probe_device(_EGLDisplay *dpy, bool swrast)
|
|||
int fd;
|
||||
int i;
|
||||
|
||||
/* Attempt to find DRM device. */
|
||||
for (i = 0; i < limit; ++i) {
|
||||
char *card_path;
|
||||
if (asprintf(&card_path, DRM_RENDER_DEV_NAME, DRM_DIR_NAME, base + i) < 0)
|
||||
|
|
@ -326,6 +327,24 @@ 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;
|
||||
}
|
||||
|
||||
if (dri2_load_driver_swrast(dpy)) {
|
||||
dri2_dpy->loader_extensions = swrast_loader_extensions;
|
||||
return true;
|
||||
}
|
||||
|
||||
free(dri2_dpy->driver_name);
|
||||
dri2_dpy->driver_name = NULL;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue