From 3f1132ee8c0bc139d90665eca4a112a3297b70ca Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Mon, 12 Oct 2020 11:15:35 +0200 Subject: [PATCH] vkd3d: Add support for InterlockedIncrement64. To be used for cookies. Works on 32-bit as well, compiler emits 8b CAS loop for us. Signed-off-by: Hans-Kristian Arntzen --- include/private/vkd3d_atomic.h | 1 + include/vkd3d_windows.h | 1 + 2 files changed, 2 insertions(+) diff --git a/include/private/vkd3d_atomic.h b/include/private/vkd3d_atomic.h index 3cbe2183..5cf537b2 100644 --- a/include/private/vkd3d_atomic.h +++ b/include/private/vkd3d_atomic.h @@ -125,6 +125,7 @@ FORCEINLINE uint32_t vkd3d_atomic_uint32_decrement(uint32_t *target, vkd3d_memor # ifndef __MINGW32__ # define InterlockedIncrement(target) vkd3d_atomic_uint32_increment(target, vkd3d_memory_order_seq_cst) # define InterlockedDecrement(target) vkd3d_atomic_uint32_decrement(target, vkd3d_memory_order_seq_cst) +# define InterlockedIncrement64(target) __atomic_add_fetch(target, 1, vkd3d_memory_order_seq_cst) # endif #else diff --git a/include/vkd3d_windows.h b/include/vkd3d_windows.h index a86a9ccd..ce6b9e3d 100644 --- a/include/vkd3d_windows.h +++ b/include/vkd3d_windows.h @@ -77,6 +77,7 @@ typedef unsigned long UINT64; typedef long long DECLSPEC_ALIGN(8) INT64; typedef unsigned long long DECLSPEC_ALIGN(8) UINT64; # endif +typedef INT64 LONG64; typedef long LONG_PTR; typedef unsigned long ULONG_PTR;