diff options
author | James Cook <james@lindenlab.com> | 2007-07-11 21:10:53 +0000 |
---|---|---|
committer | James Cook <james@lindenlab.com> | 2007-07-11 21:10:53 +0000 |
commit | a6769f262ff910949a7e1c81cf98e52ddfc2d44a (patch) | |
tree | 636700d8e2b4a040d39cfd5daa8e890660a8ec37 /indra/newview | |
parent | 873b83c2424524845c19339a08d7fd5e0f1ae805 (diff) |
SL-47720 Crash on startup due to SSE instructions. Disable SSE code generation on Windows build. This prevents global constants from being initialized with SSE instructions. We can use the SSE code on Intel Mac (since they all support SSE) and if we enable SSE compilation for the entire Windows viewer. Reviewed by Kelly.
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llviewerjointmesh_sse.cpp | 13 | ||||
-rw-r--r-- | indra/newview/llviewerjointmesh_sse2.cpp | 14 | ||||
-rw-r--r-- | indra/newview/llviewerjointmesh_vec.cpp | 17 |
3 files changed, 21 insertions, 23 deletions
diff --git a/indra/newview/llviewerjointmesh_sse.cpp b/indra/newview/llviewerjointmesh_sse.cpp index c4f8ff4fa8..579c5d2687 100644 --- a/indra/newview/llviewerjointmesh_sse.cpp +++ b/indra/newview/llviewerjointmesh_sse.cpp @@ -1,6 +1,9 @@ /** - * @file llviewerjointmesh.cpp - * @brief LLV4 class implementation with LLViewerJointMesh class + * @file llviewerjointmesh_sse.cpp + * @brief SSE vectorized joint skinning code, only used when video card does + * not support avatar vertex programs. + * + * *NOTE: Disabled on Windows builds. See llv4math.h for details. * * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. * $License$ @@ -10,9 +13,7 @@ // Header Files //----------------------------------------------------------------------------- -// Do not use precompiled headers, because we need to build this file with -// SSE support, but not the precompiled header file. JC -#include "linden_common.h" +#include "llviewerprecompiledheaders.h" #include "llviewerjointmesh.h" @@ -27,7 +28,6 @@ #include "llv4matrix4.h" #include "v3math.h" -// *NOTE: SSE must be enabled for this module #if LL_VECTORIZE @@ -88,7 +88,6 @@ void LLViewerJointMesh::updateGeometrySSE(LLFace *face, LLPolyMesh *mesh) void LLViewerJointMesh::updateGeometrySSE(LLFace *face, LLPolyMesh *mesh) { LLViewerJointMesh::updateGeometryVectorized(face, mesh); - return; } #endif diff --git a/indra/newview/llviewerjointmesh_sse2.cpp b/indra/newview/llviewerjointmesh_sse2.cpp index cae602ac14..9ef2b4692a 100644 --- a/indra/newview/llviewerjointmesh_sse2.cpp +++ b/indra/newview/llviewerjointmesh_sse2.cpp @@ -1,6 +1,9 @@ /** - * @file llviewerjointmesh.cpp - * @brief LLV4 class implementation with LLViewerJointMesh class + * @file llviewerjointmesh_sse2.cpp + * @brief SSE vectorized joint skinning code, only used when video card does + * not support avatar vertex programs. + * + * *NOTE: Disabled on Windows builds. See llv4math.h for details. * * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. * $License$ @@ -10,9 +13,7 @@ // Header Files //----------------------------------------------------------------------------- -// Do not use precompiled headers, because we need to build this file with -// SSE support, but not the precompiled header file. JC -#include "linden_common.h" +#include "llviewerprecompiledheaders.h" #include "llviewerjointmesh.h" @@ -29,10 +30,10 @@ #include "m4math.h" #include "v3math.h" -// *NOTE: SSE2 must be enabled for this module #if LL_VECTORIZE + static LLV4Matrix4 sJointMat[32]; inline void matrix_translate(LLV4Matrix4& m, const LLMatrix4* w, const LLVector3& j) @@ -90,7 +91,6 @@ void LLViewerJointMesh::updateGeometrySSE2(LLFace *face, LLPolyMesh *mesh) void LLViewerJointMesh::updateGeometrySSE2(LLFace *face, LLPolyMesh *mesh) { LLViewerJointMesh::updateGeometryVectorized(face, mesh); - return; } #endif diff --git a/indra/newview/llviewerjointmesh_vec.cpp b/indra/newview/llviewerjointmesh_vec.cpp index adc602bdaf..69ddad63fc 100644 --- a/indra/newview/llviewerjointmesh_vec.cpp +++ b/indra/newview/llviewerjointmesh_vec.cpp @@ -1,8 +1,11 @@ /** - * @file llviewerjointmesh.cpp - * @brief LLV4 math class implementation with LLViewerJointMesh class + * @file llviewerjointmesh_vec.cpp + * @brief Compiler-generated vectorized joint skinning code, works well on + * Altivec processors (PowerPC Mac) * - * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc. + * *NOTE: See llv4math.h for notes on SSE/Altivec vector code. + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. * $License$ */ @@ -19,12 +22,8 @@ #include "llv4matrix3.h" #include "llv4matrix4.h" -// *NOTE: This is the fallback code for vectorized joint mesh skinning. -// For builds that must support non-SSE x86 code (Windows, perhaps Linux) -// SSE code generation should be disabled for this file. -// -// For builds that run on processors that always have SSE (Mac), -// SSE code generation can be enabled. JC +// Generic vectorized code, uses compiler defaults, works well for Altivec +// on PowerPC. static LLV4Matrix4 sJointMat[32]; |