[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