diff options
author | Chia-I Wu <[email protected]> | 2010-10-23 17:27:58 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2010-10-23 17:28:56 +0800 |
commit | 6c13fdf60e610f670c812a310e2a3cc9f5bed568 (patch) | |
tree | d3e8704d80093f66a1a3d2cecbc21aba049eb3ef | |
parent | 0d43cbed2f130c377bed92c7a8ad8c19f441d6a5 (diff) |
st/egl: Use resource reference count for egl_g3d_sync.
-rw-r--r-- | src/gallium/state_trackers/egl/common/egl_g3d.h | 2 | ||||
-rw-r--r-- | src/gallium/state_trackers/egl/common/egl_g3d_sync.c | 5 |
2 files changed, 2 insertions, 5 deletions
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.h b/src/gallium/state_trackers/egl/common/egl_g3d.h index be450bbede3..72c14f0ac49 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d.h +++ b/src/gallium/state_trackers/egl/common/egl_g3d.h @@ -106,8 +106,6 @@ _EGL_DRIVER_TYPECAST(egl_g3d_image, _EGLImage, obj) struct egl_g3d_sync { _EGLSync base; - int refs; - /* the mutex protects only the condvar, not the struct */ pipe_mutex mutex; pipe_condvar condvar; diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_sync.c b/src/gallium/state_trackers/egl/common/egl_g3d_sync.c index ec74e9eb94c..4e6d944c151 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d_sync.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d_sync.c @@ -128,13 +128,13 @@ egl_g3d_wait_fence_sync(struct egl_g3d_sync *gsync, EGLTimeKHR timeout) static INLINE void egl_g3d_ref_sync(struct egl_g3d_sync *gsync) { - p_atomic_inc(&gsync->refs); + _eglGetSync(&gsync->base); } static INLINE void egl_g3d_unref_sync(struct egl_g3d_sync *gsync) { - if (p_atomic_dec_zero(&gsync->refs)) { + if (_eglPutSync(&gsync->base)) { pipe_condvar_destroy(gsync->condvar); pipe_mutex_destroy(gsync->mutex); @@ -194,7 +194,6 @@ egl_g3d_create_sync(_EGLDriver *drv, _EGLDisplay *dpy, pipe_mutex_init(gsync->mutex); pipe_condvar_init(gsync->condvar); - p_atomic_set(&gsync->refs, 1); return &gsync->base; } |