On Thu, Apr 5, 2018 at 12:38 PM, Lepton Wu <lep...@chromium.org> wrote: > If users are running mesa under old version of qemu or have turned off > GL at runtime, virtio gpu driver actually doesn't work. Adds a detection > here so mesa can fall back to software rendering. > > v2: > - move detection from loader to virgl (Ilia, Emil) Ping. Thanks. > > Signed-off-by: Lepton Wu <lep...@chromium.org> > --- > src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c > b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c > index cf3c3bac4b..4198ed7feb 100644 > --- a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c > +++ b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c > @@ -800,8 +800,15 @@ virgl_drm_winsys_create(int drmFD) > { > struct virgl_drm_winsys *qdws; > int ret; > + int gl = 0; > struct drm_virtgpu_getparam getparam = {0}; > > + getparam.param = VIRTGPU_PARAM_3D_FEATURES; > + getparam.value = (uint64_t)(uintptr_t)≷ > + ret = drmIoctl(drmFD, DRM_IOCTL_VIRTGPU_GETPARAM, &getparam); > + if (ret < 0 || !gl) > + return NULL; > + > qdws = CALLOC_STRUCT(virgl_drm_winsys); > if (!qdws) > return NULL; > @@ -914,6 +921,10 @@ virgl_drm_screen_create(int fd) > int dup_fd = fcntl(fd, F_DUPFD_CLOEXEC, 3); > > vws = virgl_drm_winsys_create(dup_fd); > + if (!vws) { > + close(dup_fd); > + goto unlock; > + } > > pscreen = virgl_create_screen(vws); > if (pscreen) { > -- > 2.17.0.484.g0c8726318c-goog > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev