[Mesa-dev] [PATCH] virgl/vtest: disconnect on destroy

marcandre.lureau at redhat.com marcandre.lureau at redhat.com
Thu Feb 9 14:35:08 UTC 2017


From: Marc-André Lureau <marcandre.lureau at redhat.com>

Since vtest is currently only handling a context at a time, calling
disconnect in virgl_vtest_winsys_destroy() allows to pass tests such as
piglit egl-create-context-invalid-flag-gles.

Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
---
 src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c | 9 +++++++++
 src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c | 1 +
 src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.h | 2 ++
 3 files changed, 12 insertions(+)

diff --git a/src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c b/src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c
index 4541419d8e..585b9e8156 100644
--- a/src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c
+++ b/src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c
@@ -101,11 +101,20 @@ static int virgl_vtest_send_init(struct virgl_vtest_winsys *vws)
    return 0;
 }
 
+int virgl_vtest_disconnect(struct virgl_vtest_winsys *vws)
+{
+   if (vws->sock_fd != -1)
+      return close(vws->sock_fd);
+
+   return 0;
+}
+
 int virgl_vtest_connect(struct virgl_vtest_winsys *vws)
 {
    struct sockaddr_un un;
    int sock, ret;
 
+   vws->sock_fd = -1;
    sock = socket(PF_UNIX, SOCK_STREAM, 0);
    if (sock < 0)
       return -1;
diff --git a/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c b/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c
index ce8ac97756..99470fde80 100644
--- a/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c
+++ b/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c
@@ -620,6 +620,7 @@ virgl_vtest_winsys_destroy(struct virgl_winsys *vws)
    virgl_cache_flush(vtws);
 
    pipe_mutex_destroy(vtws->mutex);
+   virgl_vtest_disconnect(vtws);
    FREE(vtws);
 }
 
diff --git a/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.h b/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.h
index b4faa70b67..7ee5f6f09b 100644
--- a/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.h
+++ b/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.h
@@ -106,6 +106,8 @@ virgl_vtest_cmd_buf(struct virgl_cmd_buf *cbuf)
 
 
 int virgl_vtest_connect(struct virgl_vtest_winsys *vws);
+int virgl_vtest_disconnect(struct virgl_vtest_winsys *vws);
+
 int virgl_vtest_send_get_caps(struct virgl_vtest_winsys *vws,
                               struct virgl_drm_caps *caps);
 
-- 
2.11.0.295.gd7dffce1c.dirty



More information about the mesa-dev mailing list