diff --git a/src/util/sync/sync_spinlock.h b/src/util/sync/sync_spinlock.h index 27157929f..a04c79258 100644 --- a/src/util/sync/sync_spinlock.h +++ b/src/util/sync/sync_spinlock.h @@ -21,7 +21,13 @@ namespace dxvk::sync { void spin(uint32_t spinCount, const Fn& fn) { while (unlikely(!fn())) { for (uint32_t i = 1; i < spinCount; i++) { + #if defined(DXVK_ARCH_X86) _mm_pause(); + #elif defined(DXVK_ARCH_ARM64) + __asm__ __volatile__ ("yield"); + #else + #error "Pause/Yield not implemented for this architecture." + #endif if (fn()) return; }