From 27eba49d7549947cd340e53d69f4d817af069464 Mon Sep 17 00:00:00 2001 From: divverent Date: Sat, 18 Feb 2012 13:48:09 +0000 Subject: [PATCH] always allow -nosse and -nosse2 flags to change SSE status git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@11698 d7cf8633-e32d-0410-b094-e92efae38249 ::stable-branch::merge=04917d73d7e3f4ab6465bc97879af1acb86a77c9 --- quakedef.h | 5 +---- sys_shared.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/quakedef.h b/quakedef.h index 65f24159..66fdfb30 100644 --- a/quakedef.h +++ b/quakedef.h @@ -484,10 +484,7 @@ extern cvar_t sessionid; # undef SSE2_PRESENT #endif -#ifdef SSE2_PRESENT -#define Sys_HaveSSE() true -#define Sys_HaveSSE2() true -#elif defined(SSE_POSSIBLE) +#ifdef SSE_POSSIBLE // runtime detection of SSE/SSE2 capabilities for x86 qboolean Sys_HaveSSE(void); qboolean Sys_HaveSSE2(void); diff --git a/sys_shared.c b/sys_shared.c index d033323a..10f5a60e 100644 --- a/sys_shared.c +++ b/sys_shared.c @@ -536,18 +536,24 @@ static int CPUID_Features(void) # endif return features; } +#endif +#ifdef SSE_POSSIBLE qboolean Sys_HaveSSE(void) { // COMMANDLINEOPTION: SSE: -nosse disables SSE support and detection if(COM_CheckParm("-nosse")) return false; +#ifdef SSE_PRESENT + return true; +#else // COMMANDLINEOPTION: SSE: -forcesse enables SSE support and disables detection if(COM_CheckParm("-forcesse") || COM_CheckParm("-forcesse2")) return true; if(CPUID_Features() & (1 << 25)) return true; return false; +#endif } qboolean Sys_HaveSSE2(void) @@ -555,12 +561,16 @@ qboolean Sys_HaveSSE2(void) // COMMANDLINEOPTION: SSE2: -nosse2 disables SSE2 support and detection if(COM_CheckParm("-nosse") || COM_CheckParm("-nosse2")) return false; +#ifdef SSE2_PRESENT + return true; +#else // COMMANDLINEOPTION: SSE2: -forcesse2 enables SSE2 support and disables detection if(COM_CheckParm("-forcesse2")) return true; if((CPUID_Features() & (3 << 25)) == (3 << 25)) // SSE is 1<<25, SSE2 is 1<<26 return true; return false; +#endif } #endif -- 2.39.2