diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2011-05-16 08:48:01 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2011-05-16 11:56:26 +0800 |
commit | 25040889c144b9ce7779bdbd7da03e4bbfee58f8 (patch) | |
tree | 0d98d39cb143622b5e32311e1497fe57d3eba726 | |
parent | b03dde4dde23ce3d7ad5e66a778099c19ddc9b2c (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.c | 6 |
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"); |