From e0cfafa6292cbcec5d49817583204a418308aac7 Mon Sep 17 00:00:00 2001 From: Andre Susano Pinto Date: Tue, 30 Jun 2009 01:17:50 +0000 Subject: Measure build time... *as expected it's a lot faster on BVH --- source/blender/render/intern/include/rayobject.h | 27 ++++++++++++++++++++++++ source/blender/render/intern/source/rayshade.c | 4 ++-- 2 files changed, 29 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/blender/render/intern/include/rayobject.h b/source/blender/render/intern/include/rayobject.h index 064341ae18b..53d96d6331f 100644 --- a/source/blender/render/intern/include/rayobject.h +++ b/source/blender/render/intern/include/rayobject.h @@ -120,4 +120,31 @@ int RE_rayobject_intersect(RayObject *r, Isect *i); #define ISECT_EPSILON ((float)FLT_EPSILON) + + +#if !defined(_WIN32) + +#include +#include +#include + +#define BENCH(a,name) \ + do { \ + double _t1, _t2; \ + struct timeval _tstart, _tend; \ + clock_t _clock_init = clock(); \ + gettimeofday ( &_tstart, NULL); \ + (a); \ + gettimeofday ( &_tend, NULL); \ + _t1 = ( double ) _tstart.tv_sec + ( double ) _tstart.tv_usec/ ( 1000*1000 ); \ + _t2 = ( double ) _tend.tv_sec + ( double ) _tend.tv_usec/ ( 1000*1000 ); \ + printf("BENCH:%s: %fs (real) %fs (cpu)\n", #name, _t2-_t1, (float)(clock()-_clock_init)/CLOCKS_PER_SEC);\ + } while(0) +#else + +#define BENCH(a) (a) + +#endif + + #endif diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index 66afb7510a4..3fe3ac8690b 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -320,9 +320,9 @@ static void makeraytree_single(Render *re) void makeraytree(Render *re) { if(ELEM(re->r.raystructure, R_RAYSTRUCTURE_SINGLE_BVH, R_RAYSTRUCTURE_SINGLE_OCTREE)) - makeraytree_single(re); + BENCH(makeraytree_single(re), tree_build); else - makeraytree_hier(re); + BENCH(makeraytree_hier(re), tree_build); } -- cgit v1.2.3