This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Graphics frame rate with EGL

Other Parts Discussed in Thread: AM3517

Hi,

I have a trouble with frame rate of SGX530 graphics. I' now work on AM3517

EVM from LOGIC with Linux. I use SDK of Graphics.

The frame rate of demo software seems 60Hz. I want to change the frame rate to 30 Hz.

I believe eglSwapInterval() or PVRShellSet(prefSwapInterval, xx) can change the

frame rate but these weren't effective.

Does anyone know a right way to change frame rate?

Regards,

akik.

 

  • Frame rates for 3D graphics works very differently than it does for video.  The frame rate for rendering graphics is almost never locked to the frame rate of the display, because the rate for rendering is dynamic and will vary greatly depending on the complexity of the 3D scene.  Repeating rendered frames to match the display rate is typical with 3D.

    If your app typically renders faster than the 30 fps you want, then you should reduce the frequency at which your app calls your scene rendering function (and eglSwapBuffers).  This tends to happen in most apps automatically as the scene complexity grows, but you can enforce it by regulating the maximum frequency that eglSwapBuffers is called.

    The section on "The Framebuffer" in this article may help:

    http://wiki.davincidsp.com/index.php/Render_to_Texture_with_OpenGL_ES

    Regards, Clay

  • Clay,

    I understood rendering graphic is independent from vidoe frame rate.

    But let me talk about a specific case.

    When PVRShell is used like demos of Graphic SDK, RenderScene() seems to be called at 60Hz as if it

    is synclonized with LCD v frame.

    And also Imagination Technology says in following document  Page 25th

    "Most LCDs are updated at a rate of around 60 Hz. By setting a swap interval of 2 using
    eglSwapInterval, you can limit the framerate to a maximum of ~30 fps"

    http://www.imgtec.com/factsheets/SDK/POWERVR%20SGX.OpenGL%20ES%202.0%20Application%20Development%20Recommendations.1.1f.External.pdf

    That's why I tried eglSwapInterval with "2" but it wasn't effective.

    Doesn't EGL of Graphic SDK support eglSwapInterval?

    Regard,

    akik

     

     

  • There might be a problem with eglSwapInterval, but I'm not sure.  It is rarely used because it discards rendered frames (or at least it is intended to) and therefore wastes the processing that generated the discarded frames.  It is more efficient to reduce the rate at which your app generates the frames in the first place.  That way, the ARM can be doing other things while waiting for the next rendered frame to be displayed.

    Regards, Clay