summaryrefslogtreecommitdiff
path: root/hardinfo2/arch/common/raytrace.h
diff options
context:
space:
mode:
authorLeandro Pereira <leandro@daileon.acd.puc-campinas.edu.br>2008-10-27 13:56:56 -0200
committerLeandro Pereira <leandro@daileon.acd.puc-campinas.edu.br>2008-10-27 13:56:56 -0200
commite68688d89d367a7cf829962e09f90e4ed2a5c211 (patch)
tree3cd4499492a5de4c8bd0ffac276ddd0ff9926865 /hardinfo2/arch/common/raytrace.h
parentc25701b7307a237ffc825b840fd9813a164b1320 (diff)
Add parallel benchmarks
Diffstat (limited to 'hardinfo2/arch/common/raytrace.h')
-rw-r--r--hardinfo2/arch/common/raytrace.h24
1 files changed, 14 insertions, 10 deletions
diff --git a/hardinfo2/arch/common/raytrace.h b/hardinfo2/arch/common/raytrace.h
index 16cba7b6..c02cb910 100644
--- a/hardinfo2/arch/common/raytrace.h
+++ b/hardinfo2/arch/common/raytrace.h
@@ -18,6 +18,16 @@
void fbench(); /* fbench.c */
+static gpointer
+parallel_raytrace(unsigned int start, unsigned int end, gpointer data)
+{
+ for (i = start; i <= end; i++) {
+ fbench();
+ }
+
+ return NULL;
+}
+
static void
benchmark_raytrace(void)
{
@@ -28,17 +38,11 @@ benchmark_raytrace(void)
shell_view_set_enabled(FALSE);
shell_status_update("Performing John Walker's FBENCH...");
- for (i = 0; i <= 1000; i++) {
- g_timer_start(timer);
-
- fbench();
-
- g_timer_stop(timer);
- elapsed += g_timer_elapsed(timer, NULL);
-
- shell_status_set_percentage(i/10);
- }
+ g_timer_start(timer);
+ benchmark_parallel_for(0, 1000, parallel_raytrace, NULL);
+ g_timer_stop(timer);
+ elapsed = g_timer_elapsed(timer, NULL);
g_timer_destroy(timer);
bench_results[BENCHMARK_RAYTRACE] = elapsed;