diff --git a/dll/directx/wine/wined3d/wined3d_private.h b/dll/directx/wine/wined3d/wined3d_private.h index 878a4d084c..5842af45e3 100644 --- a/dll/directx/wine/wined3d/wined3d_private.h +++ b/dll/directx/wine/wined3d/wined3d_private.h @@ -371,8 +371,12 @@ static inline unsigned int wined3d_popcount(unsigned int x) static inline void wined3d_pause(void) { -#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#if defined(__i386__) || defined(__x86_64__) +#if defined(__GNUC__) __asm__ __volatile__( "rep;nop" : : : "memory" ); +#elif defined(_MSC_VER) + _mm_pause(); +#endif #endif } @@ -3532,7 +3536,11 @@ enum wined3d_push_constants #define WINED3D_CS_QUERY_POLL_INTERVAL 10u #define WINED3D_CS_QUEUE_SIZE 0x100000u +#ifdef __REACTOS__ +#define WINED3D_CS_SPIN_COUNT 1u +#else #define WINED3D_CS_SPIN_COUNT 10000000u +#endif struct wined3d_cs_queue {