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/source/rayshade.c | |
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/source/rayshade.c')
-rw-r--r-- | source/blender/render/intern/source/rayshade.c | 22 |
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 ); |