Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Susano Pinto <andresusanopinto@gmail.com>2009-10-06 04:28:07 +0400
committerAndre Susano Pinto <andresusanopinto@gmail.com>2009-10-06 04:28:07 +0400
commit11bdf6ea10ee7bc5e2862cdddbf42eddb06c42fa (patch)
tree55b3def9d986ceaee75fe7d978561464f7731205 /source/blender/render/intern/source/rayshade.c
parenta62e37bfbe5a1430b204b39dcc2e1156d2a6f2bc (diff)
Added #ifdef __SSE__ so it can still build when SSE is disabled at compile time
Diffstat (limited to 'source/blender/render/intern/source/rayshade.c')
-rw-r--r--source/blender/render/intern/source/rayshade.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c
index 9ef8aa3aba2..7f112f2e79c 100644
--- a/source/blender/render/intern/source/rayshade.c
+++ b/source/blender/render/intern/source/rayshade.c
@@ -78,7 +78,7 @@ static int test_break(void *data)
return re->test_break(re->tbh);
}
-static RE_rayobject_config_control(RayObject *r, Render *re)
+static void RE_rayobject_config_control(RayObject *r, Render *re)
{
if(RE_rayobject_isRayAPI(r))
{
@@ -96,10 +96,21 @@ RayObject* RE_rayobject_create(Render *re, int type, int size)
{
//TODO
//if(detect_simd())
- type = R_RAYSTRUCTURE_SIMD_SVBVH;
- //else
- // type = R_RAYSTRUCTURE_VBVH;
+#ifdef __SSE__
+ type = R_RAYSTRUCTURE_SIMD_SVBVH;
+#else
+ type = R_RAYSTRUCTURE_VBVH;
+#endif
+ }
+
+#ifndef __SSE__
+ if(type == R_RAYSTRUCTURE_SIMD_SVBVH || type == R_RAYSTRUCTURE_SIMD_QBVH)
+ {
+ puts("Warning: Using VBVH (SSE was disabled at compile time)");
+ type = R_RAYSTRUCTURE_VBVH;
}
+#endif
+
if(type == R_RAYSTRUCTURE_OCTREE) //TODO dynamic ocres
res = RE_rayobject_octree_create(re->r.ocres, size);
@@ -111,6 +122,9 @@ RayObject* RE_rayobject_create(Render *re, int type, int size)
res = RE_rayobject_svbvh_create(size);
else if(type == R_RAYSTRUCTURE_SIMD_QBVH)
res = RE_rayobject_qbvh_create(size);
+ else
+ res = RE_rayobject_vbvh_create(size); //Fallback
+
if(res)
RE_rayobject_config_control( res, re );