From 0224dbc371a8829d07648e309f7c8047d970fe30 Mon Sep 17 00:00:00 2001
From: Philip Rebohle <philip.rebohle@tu-dortmund.de>
Date: Tue, 7 May 2019 13:38:02 +0200
Subject: [PATCH] [dxvk] Optimize spinlock implementation

---
 src/util/sync/sync_spinlock.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/util/sync/sync_spinlock.h b/src/util/sync/sync_spinlock.h
index 414f53cb..71e2035c 100644
--- a/src/util/sync/sync_spinlock.h
+++ b/src/util/sync/sync_spinlock.h
@@ -32,10 +32,8 @@ namespace dxvk::sync {
     }
     
     bool try_lock() {
-      uint32_t expected = 0;
-      return m_lock.compare_exchange_strong(expected, 1,
-        std::memory_order_acquire,
-        std::memory_order_relaxed);
+      return !m_lock.load()
+          && !m_lock.exchange(1, std::memory_order_acquire);
     }
     
   private: