Comments (2)
What is acceptable speed of rendering is dependent on your app, but here is an alternative benchmark.
Note that I moved invariants out of the loop, and increased the growth increment, yet the effect is the same.
// OpenVG benchmark
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <shapes.h>
#include <time.h>
#include <sys/time.h>
int main() {
int width, height;
VGfloat w2, h2, w;
init(&width, &height); // Graphics initialization
w2 = (VGfloat)(width/2);
h2 = (VGfloat)(height/2);
w = (VGfloat)w;
int circ_size = 0;
Start(width, height); // Start the picture
Background(0, 0, 0); // Black background
Fill(255, 255, 255, 1); // White text
TextMid(w2, h2, "hello, world", SerifTypeface, width/10); // Greetings
Fill(44, 77, 232, 1); // Big blue marble
struct timeval start, stop;
double elapsed = 0.0;
while (circ_size < w2) {
circ_size = (circ_size + 10) % width;
gettimeofday(&start, NULL);
Circle(w2, 0, circ_size); // The "world"
End();
gettimeofday(&stop, NULL);
elapsed = (double)(stop.tv_usec - start.tv_usec) / 1000000 + (double)(stop.tv_sec - start.tv_sec);
printf("Elaspsed = %.6f\n", elapsed);
}
finish(); // Graphics cleanup
exit(0);
}
from openvg.
Hello Anthony, thanks for your answer !
And sorry also, my example was wrong the printf should have read:
printf("Loop iteration: %lldms\n", end - start);
With this corrected printf, the iteration time in my benchmark is actually equivalent as the one in yours, so around ~= 17ms. Actually, this simple example:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "shapes.h"
#include <sys/time.h>
long long current_timestamp() {
struct timeval te;
gettimeofday(&te, NULL);
long long milliseconds = te.tv_sec*1000LL + te.tv_usec/1000;
return milliseconds;
}
int main() {
long long start, end;
int width, height;
init(&width, &height); // Graphics initialization
Start(width, height); // Start the picture
while (1) {
start = current_timestamp();
End(); // End the picture
end = current_timestamp();
printf("Loop iteration: %lldms\n", end - start);
}
finish(); // Graphics cleanup
exit(0);
}
Also caps at 17ms per iteration, which gives a framerate of 58fps which is the screen's refresh rate, so I think the opengl swap buffers caps the framerate on the screen's refresh rate.
from openvg.
Related Issues (20)
- Performance optimizations HOT 1
- Move scaling origin point ? HOT 1
- followed the instructions for shapedemo
- How do I print a text in front of a video that is played in omxplayer? HOT 2
- Golang make failed HOT 3
- * Failed to add service - already in use? When openGL driver is enabled. HOT 2
- Degree sign doesn't get rendered HOT 6
- Segfault error when drawing emoji HOT 1
- [Suggestion] Changing CGO flags on Raspbian Stretch HOT 1
- OpenVG Crash with recent firmwares... HOT 7
- PI4 support HOT 9
- Inconsistency on Circle/CircleOutline third parameter HOT 1
- Python version?
- Multiple instances one over other
- Screen recording?
- How to rotate an image, with specific rotation
- End() fails after a finish() and a init(). I'm trying to go back and forth from and to the raw terminal
- Animation HOT 1
- How to paint a circle HOT 10
- ttf-dejavu-core No more for RPi.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openvg.