OSDN Git Service

add sync setting interface
authorDave Airlie <airlied@redhat.com>
Wed, 29 Jun 2016 06:42:18 +0000 (16:42 +1000)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Sun, 14 Aug 2016 17:31:29 +0000 (01:31 +0800)
src/gallium/drivers/virgl/virgl_winsys.h
src/gallium/winsys/virgl/drm/virgl_drm_winsys.c
src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c

index c6dd9bf..f815490 100644 (file)
@@ -99,6 +99,8 @@ struct virgl_winsys {
    bool (*res_is_synced)(struct virgl_winsys *vws,
                          struct virgl_hw_res *res);
 
+   void (*res_set_synced)(struct virgl_hw_res *res);
+
    int (*get_caps)(struct virgl_winsys *vws, struct virgl_drm_caps *caps);
 
    /* fence */
index 2e12353..dc203cd 100644 (file)
@@ -667,6 +667,11 @@ static bool virgl_drm_res_is_synced(struct virgl_winsys *qws,
    return res->synced;
 }
 
+static void virgl_drm_res_set_synced(struct virgl_hw_res *res)
+{
+   res->synced = true;
+}
+
 static boolean virgl_drm_res_is_ref(struct virgl_winsys *qws,
                                     struct virgl_cmd_buf *_cbuf,
                                     struct virgl_hw_res *res,
@@ -826,6 +831,7 @@ virgl_drm_winsys_create(int drmFD)
    qdws->base.emit_res = virgl_drm_emit_res;
    qdws->base.res_is_referenced = virgl_drm_res_is_ref;
    qdws->base.res_is_synced = virgl_drm_res_is_synced;
+   qdws->base.res_set_synced = virgl_drm_res_set_synced;
    qdws->base.cs_create_fence = virgl_cs_create_fence;
    qdws->base.fence_wait = virgl_fence_wait;
    qdws->base.fence_reference = virgl_fence_reference;
index d958161..bda3ea4 100644 (file)
@@ -526,6 +526,11 @@ static bool virgl_vtest_res_is_synced(struct virgl_winsys *vws,
    return res->synced;
 }
 
+static void virgl_vtest_res_set_synced(struct virgl_hw_res *res)
+{
+   res->synced = true;
+}
+
 static int virgl_vtest_get_caps(struct virgl_winsys *vws,
                                 struct virgl_drm_caps *caps)
 {
@@ -666,6 +671,7 @@ virgl_vtest_winsys_wrap(struct sw_winsys *sws)
    vtws->base.emit_res = virgl_vtest_emit_res;
    vtws->base.res_is_referenced = virgl_vtest_res_is_ref;
    vtws->base.res_is_synced = virgl_vtest_res_is_synced;
+   vtws->base.res_set_synced = virgl_vtest_res_set_synced;
    vtws->base.get_caps = virgl_vtest_get_caps;
 
    vtws->base.cs_create_fence = virgl_cs_create_fence;