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 733510 - gltransformation produced black screen
gltransformation produced black screen
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.4.4
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-07-21 16:13 UTC by Isaac Smith
Modified: 2014-09-30 13:07 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
apitrace on a i915, pipeline working (236.67 KB, application/octet-stream)
2014-07-21 19:52 UTC, Thibault Saunier
  Details
Switch the order of the matrix transformation (979 bytes, patch)
2014-09-25 15:42 UTC, Lubosz Sarnecki
committed Details | Review
bump graphene version (834 bytes, patch)
2014-09-30 13:05 UTC, Lubosz Sarnecki
committed Details | Review

Description Isaac Smith 2014-07-21 16:13:29 UTC
Using the gltransformation pipeline on any pipeline results in a black output, example:
gltestsrc ! gltransformation ! glimagesink

I'm on the latest git version of gstreamer and plugins. I've installed the required graphene library as well.
Comment 1 Nicolas Dufresne (ndufresne) 2014-07-21 17:27:39 UTC
Any particular trace ? try GST_DEBUG=3, or provide a trace with GST_DEBUG="gl*:7,3"
Comment 2 Lubosz Sarnecki 2014-07-21 17:46:13 UTC
Which graphics driver do you use?

Does this pipeline work for you?:
gltestsrc ! glfiltercube ! glimagesink
Comment 3 Lubosz Sarnecki 2014-07-21 18:57:34 UTC
Actually I can reproduce the issue on i965 dri. It works for me on nouvau and NVIDIA. I will figure out why.
Comment 4 Isaac Smith 2014-07-21 19:03:11 UTC
I've tried on two different computers using the open source radeon drivers, same issue. glfiltercube and other misc gl plugins work fine. I'd be happy to test a patch if you figure something out.
Comment 5 Lubosz Sarnecki 2014-07-21 19:47:52 UTC
Could you share a apitrace recorded with radeon?

$ apitrace trace gst-launch-1.0 gltestsrc num-buffers=100 ! gltransformation ! glimagesink

Here you can find apitraces for intel, nvidia and nouveau:
https://drive.google.com/folderview?id=0B0bLtNyAhxgoUmFXLThsUGtFek0&usp=sharing

The issue is reproducable with the recorded apitraces. I am able to run the nouveau trace on intel with correct results.
I can reproduce the intel trace bug on nouveau.

$ apitrace replay gltransformation-nouveau.trace

This should also show the test src for you.

I wonder why it does work on nouveau, since it shares the same Gallium backend as radeon.
Comment 6 Thibault Saunier 2014-07-21 19:52:56 UTC
Created attachment 281340 [details]
apitrace on a i915, pipeline working

That same pipeline works just fine here on an intel chip. Attaching apitrace.
Comment 7 Lubosz Sarnecki 2014-07-21 20:43:30 UTC
I figured out that the problem was not the driver, but the graphene version I had installed.

cecf4bc34414792328ce9b61a040664fad4be196 is the first bad commit
commit cecf4bc34414792328ce9b61a040664fad4be196
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu Jul 3 15:39:47 2014 +0100

    simd4x4f: Improve the matrix multiplication


Could you please test it with the latest working graphene commit d1eb4992d56128226f74b9e9d4c0a4f802a478da ?
The commit cannot be reverted since ebassi changed a much in the matrix code.

I will file a graphene bug.
Comment 8 Isaac Smith 2014-07-21 20:52:49 UTC
Switching to that commit made it work perfectly, thanks!
Comment 9 Nicolas Dufresne (ndufresne) 2014-07-21 22:21:15 UTC
Maybe graphene should be a submodule like other unreleased/unstable depedency ? This way we could lock it to a working commit.
Comment 10 Lubosz Sarnecki 2014-09-25 15:42:33 UTC
Created attachment 287093 [details] [review]
Switch the order of the matrix transformation

The issue is in graphene on git master, but not in the 0.99.2 release.

Apparently the order of the matrix multiplication has changed. I wonder if this will stay for the next release or is just an accident.

Upstream bug:
https://github.com/ebassi/graphene/issues/14

This patch fixes the issue in gltransformation for graphene from git master.
Comment 11 Emmanuele Bassi (:ebassi) 2014-09-25 15:58:11 UTC
yes, there has been a change in the order of the matrix multiplication operands, because the old order had them swapped around in a weird way that was not what users of this kind of API usually expect. since 0.99 is still a development cycle with no API stability, I can get away with this kind of changes — but once 1.0 is out, it won't change any more.

I'm going to do a 1.0 release soon, probably this weekend, just in case.
Comment 12 Matthew Waters (ystreet00) 2014-09-30 12:14:39 UTC
commit 04034b11f43c03641ec35c672e5987cf3b500e9e
Author: Lubosz Sarnecki <lubosz@gmail.com>
Date:   Thu Sep 25 17:01:31 2014 +0200

    gltransformation: graphene multiplication order has changed
    
    https://bugzilla.gnome.org/show_bug.cgi?id=733510

and 1.4
da094d5fd9bd40779abe26bb8cb6e57ecf789ae6
Comment 13 Lubosz Sarnecki 2014-09-30 13:05:01 UTC
Created attachment 287445 [details] [review]
bump graphene version