From 2c4c8172d77c774dff17af2ece5f4032b579636d Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 23 Apr 2026 21:27:49 -0500 Subject: [PATCH] atomic: Fix memory barriers on MSVC ARM64 --- include/SDL3/SDL_atomic.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/SDL3/SDL_atomic.h b/include/SDL3/SDL_atomic.h index 91de812828..e14a02a8ce 100644 --- a/include/SDL3/SDL_atomic.h +++ b/include/SDL3/SDL_atomic.h @@ -284,6 +284,10 @@ extern SDL_DECLSPEC void SDLCALL SDL_MemoryBarrierAcquireFunction(void); #elif defined(__GNUC__) && defined(__aarch64__) #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ishld" : : : "memory") +#elif defined(_MSC_VER) && (defined(_M_ARM64) || defined(_M_ARM64EC)) +#include +#define SDL_MemoryBarrierRelease() __dmb(_ARM64_BARRIER_ISH) +#define SDL_MemoryBarrierAcquire() __dmb(_ARM64_BARRIER_ISHLD) #elif defined(__GNUC__) && defined(__arm__) #if 0 /* defined(SDL_PLATFORM_LINUX) || defined(SDL_PLATFORM_ANDROID) */ /* Information from: