diff options
author | Andre Susano Pinto <andresusanopinto@gmail.com> | 2009-10-06 04:28:07 +0400 |
---|---|---|
committer | Andre Susano Pinto <andresusanopinto@gmail.com> | 2009-10-06 04:28:07 +0400 |
commit | 11bdf6ea10ee7bc5e2862cdddbf42eddb06c42fa (patch) | |
tree | 55b3def9d986ceaee75fe7d978561464f7731205 /source/blender/render/intern/raytrace | |
parent | a62e37bfbe5a1430b204b39dcc2e1156d2a6f2bc (diff) |
Added #ifdef __SSE__ so it can still build when SSE is disabled at compile time
Diffstat (limited to 'source/blender/render/intern/raytrace')
4 files changed, 35 insertions, 0 deletions
diff --git a/source/blender/render/intern/raytrace/bvh.h b/source/blender/render/intern/raytrace/bvh.h index f0302ddba3a..0e74bbc923b 100644 --- a/source/blender/render/intern/raytrace/bvh.h +++ b/source/blender/render/intern/raytrace/bvh.h @@ -33,11 +33,15 @@ #include "rayobject_hint.h" #include <assert.h> + +#ifdef __SSE__ #include <xmmintrin.h> +#endif #ifndef RE_RAYTRACE_BVH_H #define RE_RAYTRACE_BVH_H +#ifdef __SSE__ inline int test_bb_group4(__m128 *bb_group, const Isect *isec) { @@ -53,6 +57,7 @@ inline int test_bb_group4(__m128 *bb_group, const Isect *isec) return _mm_movemask_ps(_mm_cmpge_ps(tmax3, tmin3)); } +#endif /* bvh tree generics */ @@ -159,6 +164,7 @@ static int bvh_node_stack_raycast(Node *root, Isect *isec) } +#ifdef __SSE__ /* * Generic SIMD bvh recursion * this was created to be able to use any simd (with the cost of some memmoves) @@ -287,6 +293,7 @@ static int bvh_node_stack_raycast_simd(Node *root, Isect *isec) } return hit; } +#endif /* * recursively transverse a BVH looking for a rayhit using system stack diff --git a/source/blender/render/intern/raytrace/rayobject_qbvh.cpp b/source/blender/render/intern/raytrace/rayobject_qbvh.cpp index b18ee0824cf..8d35848c9ec 100644 --- a/source/blender/render/intern/raytrace/rayobject_qbvh.cpp +++ b/source/blender/render/intern/raytrace/rayobject_qbvh.cpp @@ -30,6 +30,8 @@ #include "svbvh.h" #include "reorganize.h" +#ifdef __SSE__ + #define DFS_STACK_SIZE 256 struct QBVHTree @@ -134,3 +136,14 @@ RayObject *RE_rayobject_qbvh_create(int size) { return bvh_create_tree<QBVHTree,DFS_STACK_SIZE>(size); } + + +#else + +RayObject *RE_rayobject_qbvh_create(int size) +{ + puts("WARNING: SSE disabled at compile time\n"); + return NULL; +} + +#endif
\ No newline at end of file diff --git a/source/blender/render/intern/raytrace/rayobject_svbvh.cpp b/source/blender/render/intern/raytrace/rayobject_svbvh.cpp index 229e82dfa68..a877b91e2ff 100644 --- a/source/blender/render/intern/raytrace/rayobject_svbvh.cpp +++ b/source/blender/render/intern/raytrace/rayobject_svbvh.cpp @@ -30,6 +30,8 @@ #include "svbvh.h" #include "reorganize.h" +#ifdef __SSE__ + #define DFS_STACK_SIZE 256 struct SVBVHTree @@ -168,3 +170,12 @@ RayObject *RE_rayobject_svbvh_create(int size) { return bvh_create_tree<SVBVHTree,DFS_STACK_SIZE>(size); } +#else + +RayObject *RE_rayobject_svbvh_create(int size) +{ + puts("WARNING: SSE disabled at compile time\n"); + return NULL; +} + +#endif diff --git a/source/blender/render/intern/raytrace/svbvh.h b/source/blender/render/intern/raytrace/svbvh.h index 840ccc24d1a..3c733b6b402 100644 --- a/source/blender/render/intern/raytrace/svbvh.h +++ b/source/blender/render/intern/raytrace/svbvh.h @@ -26,6 +26,8 @@ * * ***** END GPL LICENSE BLOCK ***** */ +#ifdef __SSE__ + #ifndef RE_RAYTRACE_SVBVH_H #define RE_RAYTRACE_SVBVH_H @@ -243,3 +245,5 @@ struct Reorganize_SVBVH }; #endif + +#endif //__SSE__
\ No newline at end of file |