summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2011-05-16 08:48:01 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2011-05-16 11:56:26 +0800
commit25040889c144b9ce7779bdbd7da03e4bbfee58f8 (patch)
tree0d98d39cb143622b5e32311e1497fe57d3eba726
parentb03dde4dde23ce3d7ad5e66a778099c19ddc9b2c (diff)
test/putsurface/putsurface: fix multi-thread issue on X11
On X11, a VA display is dependent on the display returned by XOpenDisplay, vaPutSurface maybe accesses this display. So the same access mechanism is needed for vaPutSurface and other Xlib funtion calls. Another way is to call XInitThreads before XOpenDisplay. Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
-rw-r--r--test/putsurface/putsurface_common.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/putsurface/putsurface_common.c b/test/putsurface/putsurface_common.c
index 1bf4e1e..54404fc 100644
--- a/test/putsurface/putsurface_common.c
+++ b/test/putsurface/putsurface_common.c
@@ -193,12 +193,18 @@ static void* putsurface_thread(void *data)
(test_clip==0)?0:2,
display_field);
#else
+ if (check_event) {
+ pthread_mutex_lock(&gmutex);
+ }
vaStatus = vaPutSurface(va_dpy, surface_id, draw,
0,0,surface_width,surface_height,
0,0,width,height,
(test_clip==0)?NULL:&cliprects[0],
(test_clip==0)?0:2,
display_field);
+ if (check_event) {
+ pthread_mutex_unlock(&gmutex);
+ }
#endif
CHECK_VASTATUS(vaStatus,"vaPutSurface");