Giter VIP home page Giter VIP logo

Comments (2)

ajstarks avatar ajstarks commented on August 20, 2024

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.

raph-amiard avatar raph-amiard commented on August 20, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.