Better altivec cvar handling. Should fix crashes at startup, or curious

people that toggle it on at runtime on a G3.
This commit is contained in:
Ryan C. Gordon 2005-12-04 21:40:25 +00:00
parent dd4dce194e
commit ff9c89f8fe
4 changed files with 42 additions and 11 deletions

View file

@ -2353,6 +2353,24 @@ out:
#endif
static void Com_DetectAltivec(void)
{
// Only detect if user hasn't forcibly disabled it.
if (com_altivec->integer) {
static qboolean altivec = qfalse;
static qboolean detected = qfalse;
if (!detected) {
altivec = Sys_DetectAltivec();
detected = qtrue;
}
if (!altivec) {
Cvar_Set( "com_altivec", "0" ); // we don't have it! Disable support!
}
}
}
/*
=================
Com_Init
@ -2510,9 +2528,11 @@ void Com_Init( char *commandLine ) {
com_fullyInitialized = qtrue;
#if idppc_altivec
// always set the cvar, but only print the info if it makes sense.
Com_DetectAltivec();
#if idppc
Com_Printf ("Altivec support is %s\n", com_altivec->integer ? "enabled" : "disabled");
#endif
#endif
Com_Printf ("--- Common Initialization Complete ---\n");
}
@ -2713,6 +2733,12 @@ void Com_Frame( void ) {
} while ( msec < minMsec );
Cbuf_Execute ();
if (com_altivec->modified)
{
Com_DetectAltivec();
com_altivec->modified = qfalse;
}
lastTime = com_frameTime;
// mess with msec if needed