# HG changeset patch # User Radek Brich # Date 1206737252 -3600 # Node ID 89fec866876870da3d077bf9eeb9d0318049b7bc # Parent 14a727b70d079581a1a1987720e65c2f02c7924a remove debug messages - algorithm seems stable, but it's slow diff -r 14a727b70d07 -r 89fec8668768 src/raytracer.cc --- a/src/raytracer.cc Fri Mar 28 17:13:21 2008 +0100 +++ b/src/raytracer.cc Fri Mar 28 21:47:32 2008 +0100 @@ -404,43 +404,33 @@ Ray ray; for (;;) { - cout<<"#worker "<sample_queue_mutex); pthread_cond_signal(&rt->worker_ready_cond); - // if queue is empty, wait for samples while (rt->sample_queue.empty()) { if (rt->sample_queue_end) { - cout<<"#worker "<sample_queue_mutex); pthread_exit(NULL); } - cout<<"#worker "<sample_queue_cond, &rt->sample_queue_mutex); } - sample = rt->sample_queue.front(); rt->sample_queue.pop(); - cout<<"#worker "<sample_queue_mutex); // do the work - cout<<"#worker "<sampler_mutex); ray = rt->camera->makeRay(sample); - cout<<"#worker "<sampler_mutex); - cout<<"#worker "<raytrace(ray, 0, NULL); - + // save the result - cout<<"#worker "<sampler_mutex); rt->sampler->saveSample(sample, col); - cout<<"#worker "<sampler_mutex); delete sample; @@ -455,7 +445,7 @@ sample_queue_end = false; // create workers - dbgmsg(1, "* using %d threads\n", num_threads); + dbgmsg(1, "* running %d threads\n", num_threads); pthread_t threads[num_threads]; for (int t = 0; t < num_threads; t++) { @@ -466,70 +456,62 @@ } } + dbgmsg(1, "* raytracing...\n"); + dbgmsg(2, "- 0%% done"); + sampler->init(); - int sampnum = 0; - cout<<"locking sampler"<initSampleSet()) > 0 ) { - Sample *sample; + sampdone = 0; while ( (sample = sampler->nextSample()) != NULL ) { - cout<<"unlocking sampler and locking queue"< 1000) { - while (sample_queue.size() > 100) - { - pthread_cond_signal(&sample_queue_cond); - pthread_cond_wait(&worker_ready_cond, &sample_queue_mutex); - } + while (sample_queue.size() > 100) + { + pthread_cond_signal(&sample_queue_cond); + pthread_cond_wait(&worker_ready_cond, &sample_queue_mutex); + } } - cout<<"sending signal and unlocking queue"<