Joshua Ashton
d709fd3306
vkd3d: Add vkd3d_atomic_uint32_{dec, inc}rement helper
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton
45d4296a54
vkd3d: Rename vkd3d_uint32_atomic to vkd3d_atomic_uint32
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton
033f76e3ae
vkd3d: Define our own memory orders
...
We shouldn't potentially override stuff in the std library and this allows us to map directly to __ATOMIC_* memory orders which is more correct.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton
25f6e1d0a9
vkd3d: Use __atomic builtins instead of stdatomic
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton
26c9dc90f4
vkd3d: Implement sequential consistency on MSVC
...
Also optimize and reduce unnecessary barriers.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 21:13:35 +02:00
Joshua Ashton
fb02f28c41
vkd3d: Don't redefine InterlockedIncrement under MinGW
...
Fixes compiler warnings
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-24 15:27:22 +02:00
Hans-Kristian Arntzen
2b7ef38248
Revert "vkd3d: make spinlock_t atomic to make clang happy"
...
This reverts commit 7b1dce2667
.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-06-24 13:40:03 +02:00
Georg Lehmann
7b1dce2667
vkd3d: make spinlock_t atomic to make clang happy
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
2020-06-24 13:26:31 +02:00
Joshua Ashton
cd5d01d25c
vkd3d: Refactor atomics
...
There is no stdatomic available on MSVC so let's clean things up.
This moves all the atomic helpers to vkd3d_atomic.h and implements all platform's spinlocks in entirely the same way.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-06-15 20:40:10 +02:00