Module: vkd3d Branch: master Commit: 9228e131557c78119951ee423deb260d3262e01b URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/9228e131557c78119951ee423deb26...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Jan 18 19:50:00 2024 +0100
vkd3d-common: Introduce vkd3d_atomic_decrement_u32().
---
include/private/vkd3d_common.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/include/private/vkd3d_common.h b/include/private/vkd3d_common.h index 6c8f8eed..46090eac 100644 --- a/include/private/vkd3d_common.h +++ b/include/private/vkd3d_common.h @@ -294,6 +294,11 @@ static inline uint64_t vkd3d_atomic_increment_u64(uint64_t volatile *x) return vkd3d_atomic_add_fetch_u64(x, 1); }
+static inline uint32_t vkd3d_atomic_decrement_u32(uint32_t volatile *x) +{ + return vkd3d_atomic_add_fetch_u32(x, ~0u); +} + static inline uint32_t vkd3d_atomic_increment_u32(uint32_t volatile *x) { return vkd3d_atomic_add_fetch_u32(x, 1); @@ -305,15 +310,10 @@ static inline LONG InterlockedIncrement(LONG volatile *x) return vkd3d_atomic_increment_u32((uint32_t *)x); }
-# if HAVE_SYNC_SUB_AND_FETCH static inline LONG InterlockedDecrement(LONG volatile *x) { - return __sync_sub_and_fetch(x, 1); + return vkd3d_atomic_decrement_u32((uint32_t *)x); } -# else -# error "InterlockedDecrement() not implemented for this platform" -# endif - #endif /* _WIN32 */
static inline void vkd3d_parse_version(const char *version, int *major, int *minor)