summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-02-05 11:28:09 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-02-05 11:28:09 +0000
commitea065b8224470fac133e28d33c8b82feac89709a (patch)
tree9256481dac01e1fc6f6481e7b580a77fca37e5bc
parent0552f44d2f37c73b8d88821423789ece84875100 (diff)
spinner: compile fix, complete the transition for benchmarking
-rw-r--r--spinner-demo.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/spinner-demo.c b/spinner-demo.c
index 3f2f5da..10e3a6f 100644
--- a/spinner-demo.c
+++ b/spinner-demo.c
@@ -185,9 +185,13 @@ int main(int argc, char **argv)
double zoom = 0.75;
int show_fps = 1;
const char *version;
+ int benchmark;
device = device_open(argc, argv);
version = device_show_version(argc, argv);
+ benchmark = device_get_benchmark(argc,argv);
+ if (benchmark == 0)
+ benchmark = 20;
signal(SIGHUP, signal_handler);
@@ -256,7 +260,7 @@ int main(int argc, char **argv)
zoom *= factor;
gettimeofday(&now, NULL);
- if (show_fps) {
+ if (benchmark < 0 && show_fps) {
if (last_fps.tv_sec)
fps_draw(cr, device->name, version,
&last_fps, &now);
@@ -278,6 +282,16 @@ int main(int argc, char **argv)
frames = 0;
}
}
+
+ if (benchmark > 0) {
+ delta = now.tv_sec - start.tv_sec;
+ delta += (now.tv_usec - start.tv_usec)*1e-6;
+ if (delta > benchmark) {
+ printf("spinner: %.2f fps\n",
+ frame / delta);
+ break;
+ }
+ }
} while (!done);
if (benchmark < 0) {