[Bug 753886] Poor GLImageSink performance on Raspberry Pi
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Fri Jan 22 01:26:33 PST 2016
https://bugzilla.gnome.org/show_bug.cgi?id=753886
--- Comment #5 from Gwang Yoon Hwang <yoon at igalia.com> ---
(In reply to Sergey Borovkov from comment #4)
> I managed to get qmlglsink working without performance drops on rpi - in
> it's initial state (and well after enabling it to work on rpi by using
> android code for egl) it's as slow as glimagesink. I set caps to EGLimage
> bypassing glupload. Once I had created one texture and rendered every
> eglimage to that texture I started having no frame drops at 1080p. Just for
> reference this was my rendering code (modified ext/qt/gstqsgtexture.cpp).
> if (tex == 0) {
> gl->GenTextures(1, &tex);
> gl->BindTexture (GL_TEXTURE_2D, tex);
> gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
> gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
> GL_NEAREST);
> gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,
> GL_CLAMP_TO_EDGE);
> gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
> gl->TexImage2D ( GL_TEXTURE_2D, 0, GL_RGBA, 1920, 1080, 0, GL_RGBA,
> GL_UNSIGNED_BYTE, NULL );
> }
> gl->BindTexture (GL_TEXTURE_2D, tex);
> gl->EGLImageTargetTexture2D (GL_TEXTURE_2D,
> gst_egl_image_memory_get_image (mem));
>
> I don't know if this is any helpful but the only difference that I see
> compared to when I was using glupload is that glupload creates a lot of new
> textures (1 for every frame?) - I don't know if that's what impacts
> performance though.
That's correct.
Current implementation of EGLImageMemory and GLUpload creates a texture and
copies EGLImage's contents to the glUpload's texture for every frame.
That makes huge performance drop.
I did some job to remove those overheads, here is the related bugs:
https://bugzilla.gnome.org/show_bug.cgi?id=760916
https://bugzilla.gnome.org/show_bug.cgi?id=760918
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list