Re: Frame rate drops dramatically with high resolution on embedded device using EGL backend



hi;

are you perchance using FBOs (directly or through
ClutterOffscreenEffect)? in my experience, using FBOs on some
platforms increases drastically the time spent inside eglMakeCurrent.

ciao,
 Emmanuele.


On 2 May 2013 11:51, Reza Ghassemi <reza robin1 gmail com> wrote:
An update.

By doing some profiling, we found that the culprit for slow FPS seems to be
one of the COGL API’s, bind_onscreen_with_context.  It is taking 70-100msec!
From what we can tell, this function is pretty much a wrapper around
eglMakeCurrent.


On Mon, Apr 29, 2013 at 7:03 PM, Reza Ghassemi <reza robin1 gmail com>
wrote:

My team and I working on porting clutter to an embedded linux system which
requires using the EGL backend (CLUTTER_BACKEND=eglnative). I created a test
application that renders a number of playing card images and scrolls them
around the scene. When doing this at a resolution of 300x200 everything ran
perfectly fine. CLUTTER_SHOW_FPS shows a frame rate varying around 60fps.
However, as we increase the resolution, the frame rate drops dramatically.
At our target resolution of 1920x1080, the frame rate completely tanked,
dropping to an average of about 15fps. The frame rate is low with or without
animations running. In addition, the high resolution version exhibits
noticeable visual tearing.

At first my assumption was that OpenGLES2 was not being used to render,
since, as I understand it, OpenGL uses double buffering and should not cause
tearing. So we ran the same test using one of the Cogl samples
(cogl-gles-gears), with its resolution turned up to 1920x1080, but the same
thing happened: dramatic decrease in frame rate and noticeable tearing.

We've tested implementations of the same card scrolling app in several
other gui frameworks on the same device, at the same resolution, and none of
them exhibited this problem. Qt, for example, ran smoothly at around 60fps
with no tearing.

Does anyone have any insight into what might cause this? Could it have to
do with the 'experimental' nature of the EGL backend? What could cause the
tearing when rendering with OpenGL?

Here are some samples of the frame rate reported by cogl-gles-gears at
different resolutions:

1920x1080 => ~16fps
1280x720 => ~32fps
854x480 => ~55fps



_______________________________________________
clutter-list mailing list
clutter-list gnome org
https://mail.gnome.org/mailman/listinfo/clutter-list




-- 
W: http://www.emmanuelebassi.name
B: http://blogs.gnome.org/ebassi/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]