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
[email protected]
https://mail.gnome.org/mailman/listinfo/clutter-list

Reply via email to