Mesa (master): d3d1x: add missing memory barrier

Luca Barbieri lb at kemper.freedesktop.org
Wed Sep 22 13:56:14 UTC 2010


Module: Mesa
Branch: master
Commit: d092c0c60ddcb56f8c5d2786ae3b61f5339b84e1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d092c0c60ddcb56f8c5d2786ae3b61f5339b84e1

Author: Luca Barbieri <luca at luca-barbieri.com>
Date:   Wed Sep 22 13:21:13 2010 +0200

d3d1x: add missing memory barrier

---

 .../d3d1x/d3d1xstutil/include/d3d1xstutil.h        |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/d3d1x/d3d1xstutil/include/d3d1xstutil.h b/src/gallium/state_trackers/d3d1x/d3d1xstutil/include/d3d1xstutil.h
index 19ac53e..55cbd4a 100644
--- a/src/gallium/state_trackers/d3d1x/d3d1xstutil/include/d3d1xstutil.h
+++ b/src/gallium/state_trackers/d3d1x/d3d1xstutil/include/d3d1xstutil.h
@@ -363,8 +363,12 @@ struct dual_refcnt_t
 	unsigned nonatomic_release()
 	{
 		//printf("%p nonatomic_release at %u %u\n", this, atomic_refcnt, nonatomic_refcnt);
-		if(!--nonatomic_refcnt && !atomic_refcnt && is_zero())
-			return 0;
+		if(!--nonatomic_refcnt)
+		{
+			__sync_synchronize();
+			if(!atomic_refcnt && is_zero())
+				return 0;
+		}
 		return 1;
 	}
 };




More information about the mesa-commit mailing list