GNOME Bugzilla – Bug 733510
gltransformation produced black screen
Last modified: 2014-09-30 13:07:09 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.
Any particular trace ? try GST_DEBUG=3, or provide a trace with GST_DEBUG="gl*:7,3"
Which graphics driver do you use? Does this pipeline work for you?: gltestsrc ! glfiltercube ! glimagesink
Actually I can reproduce the issue on i965 dri. It works for me on nouvau and NVIDIA. I will figure out why.
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.
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.
Created attachment 281340 [details] apitrace on a i915, pipeline working That same pipeline works just fine here on an intel chip. Attaching apitrace.
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.
Switching to that commit made it work perfectly, thanks!
Maybe graphene should be a submodule like other unreleased/unstable depedency ? This way we could lock it to a working commit.
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.
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.
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
Created attachment 287445 [details] [review] bump graphene version