summaryrefslogtreecommitdiffstats
path: root/src/egl/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/egl/drivers')
-rw-r--r--src/egl/drivers/dri2/platform_surfaceless.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c
index 4fe364ab22e..fefb2b449d0 100644
--- a/src/egl/drivers/dri2/platform_surfaceless.c
+++ b/src/egl/drivers/dri2/platform_surfaceless.c
@@ -301,8 +301,13 @@ surfaceless_probe_device(_EGLDisplay *disp, bool swrast)
char *driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
if (swrast) {
- /* Use kms swrast only with vgem */
- if (strcmp(driver_name, "vgem") == 0)
+ /* Use kms swrast only with vgem / virtio_gpu.
+ * virtio-gpu fallbacks to software rendering when 3D features
+ * are unavailable since 6c5ab, and kms_swrast is more
+ * feature complete than swrast.
+ */
+ if (strcmp(driver_name, "vgem") == 0 ||
+ strcmp(driver_name, "virtio_gpu") == 0)
dri2_dpy->driver_name = strdup("kms_swrast");
free(driver_name);
} else {