After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 734269 - GLUpload didn't update texture properly
GLUpload didn't update texture properly
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Windows
: Normal normal
: 1.4.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-08-05 10:17 UTC by comicfans44
Modified: 2014-08-06 04:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
remove the pointer compare condition check (953 bytes, patch)
2014-08-06 00:32 UTC, comicfans44
committed Details | Review

Description comicfans44 2014-08-05 10:17:34 UTC
if create a pipeline as 
appsrc ! gleffects ! glimagesink 

but didn't push buffer fast enough (slower than caps's FPS), gl render window only redraw a few frames, and then stay at last frame.  but if triggered some UI exposed event (move ,resize ,or other window overlay gl render window), some frames updates ,then stay again. 

but this problem only happend on windows. linux works OK

if pipeline is 
appsrc ! glimagesink 
no such problem. (both windows and linux worked)


after some debug, I found 
_gst_gl_upload_perform_with_data_unlocked
use pointer compare 
 upload->in_tex[i]->data != data[i]
to determine if glmemory needs to be re-upload ,I'm not sure if this is incorrect,
in pipeline appsrc ! gleffects ! glimagesink  
these two pointer almost equals every time on windows ,but different every time on Linux. 

if without this condition check , problem gone.
Comment 1 Matthew Waters (ystreet00) 2014-08-05 14:54:02 UTC
Sounds good.  Can you provide a patch?
Comment 2 comicfans44 2014-08-06 00:32:48 UTC
Created attachment 282616 [details] [review]
remove the pointer compare condition check

(In reply to comment #1)
> Sounds good.  Can you provide a patch?

my pleasure, this patch just remove the condition check.  it "fix" the problem, but I'm not sure if this is the correct "logical fix"
Comment 3 Matthew Waters (ystreet00) 2014-08-06 04:50:25 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > Sounds good.  Can you provide a patch?
> 
> my pleasure, this patch just remove the condition check.  it "fix" the problem,
> but I'm not sure if this is the correct "logical fix"

It is :).  glupload shouldn't rely on the pointers being different to determine whether to upload.
Comment 4 Matthew Waters (ystreet00) 2014-08-06 04:56:03 UTC
commit ba822e1dd07fec9ed5010bd3b4e8f723a4d4f06f
Author: Wang Xin-yu (王昕宇) <comicfans44@gmail.com>
Date:   Wed Aug 6 08:15:38 2014 -0400

    glupload: don't determine if frame needs upload by pointer compare
    
    https://bugzilla.gnome.org/show_bug.cgi?id=734269

and 1.4
commit 0b651caed5bacd4545bb7b420a3799c64e0fe6d8