segmentation fault with wf 2.0 and Filtered "(GLSL)"

Bug #981218 reported by Daniel Schürmann
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Critical
Daniel Schürmann

Bug Description

I had a segmentation fault on my Netbook:
* Atom CPU N270 @ 1.6GHz
* 2 GiB RAM
* Ubuntu Lucid
* QT Version Qt version 4.6.2.
* Intel 945GME

It happens just after switching to "Filtered (GLSL)" Mode.

Unfortunately I have not saved the console output and I am not able to reproduce the issue.

There was something like
"cannot set background ..
.. Command ... is not supported .. "

Maybe this depends on Bug #981210

RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: none → 1.11.0
importance: Undecided → Critical
Revision history for this message
Thomas Vincent (vrince) wrote :

This should be related to non deploed shader but it should not crash even if files are missing.
I'll add some run-time tests.

Changed in mixxx:
assignee: nobody → Thomas Vincent (vrince)
Thomas Vincent (vrince)
Changed in mixxx:
status: New → In Progress
Revision history for this message
Daniel Schürmann (daschuer) wrote :

I have crated a duplicate Bug #1001909 accidentally.
It Includes a backtrack.

Now the crash is reproducible.
it was tested wit lp:mixxx #3171

Revision history for this message
Thomas Vincent (vrince) wrote :

For some reason you driver seems to fail creating a frame buffer with a non power-of-two width.
I consider this bug fix since it shoul dnot crash any more but you won't be able to use GLSL version.
When GLSL version will become more important we'll try to use power-fpf-two size everywhere to try to accomodate every opengl/driver version.

Changed in mixxx:
status: In Progress → Fix Committed
Revision history for this message
Daniel Schürmann (daschuer) wrote :

The fix is not committed to the lp:mixxx, so the state is still "In Progress".
How can I test it?

Changed in mixxx:
status: Fix Committed → In Progress
Revision history for this message
Thomas Vincent (vrince) wrote :

My bad I was quite sure I pushed it in trunk ...

Revision history for this message
Thomas Vincent (vrince) wrote :

What about now ? Can you give it a shot ? trunk >= 3219

Changed in mixxx:
status: In Progress → Fix Committed
Revision history for this message
Daniel Schürmann (daschuer) wrote :
Download full text (6.1 KiB)

Hi Thomas,

I am sorry, segfault is still there, tested with lp:mixxx #3222

log:

Warning [Main]: WaveformRenderBackground::generatePixmap - no background file
WARNING: Application calling GLX 1.3 function "glXCreatePixmap" when GLX 1.3 is not supported! This is an application bug!
Warning [Main]: WaveformRenderBackground::generatePixmap - no background file
Debug [Main]: guess the size of the window decoration
WARNING: Application calling GLX 1.3 function "glXDestroyPixmap" when GLX 1.3 is not supported! This is an application bug!
Debug [Main]: GLWaveformRendererSignalShader::loadShaders
Warning [Main]: QGLShader::compile: "Warning: GL_EXT_gpu_shader4: enabled extension is not supported.
Error: 2005: ')' expected but '???' found.
"
Debug [Main]: QGLFramebufferObject: Framebuffer incomplete attachment.
Warning [Main]: GLSLWaveformRendererSignal::createFrameBuffer - frame buffer not valid
Debug [Main]: GLSLWaveformRendererSignal::loadTexture - m_textureId 4 error 1281
Debug [Main]: GLWaveformRendererSignalShader::loadShaders
Warning [Main]: QGLShader::compile: "Warning: GL_EXT_gpu_shader4: enabled extension is not supported.
Error: 2005: ')' expected but '???' found.
"
Debug [Main]: QGLFramebufferObject: Framebuffer incomplete attachment.
Warning [Main]: GLSLWaveformRendererSignal::createFrameBuffer - frame buffer not valid
Debug [Main]: GLSLWaveformRendererSignal::loadTexture - m_textureId 4 error 1281
i915_program_error: Unsupported opcode: IF
Warning [Main]: WaveformRenderBackground::generatePixmap - no background file

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()

backtrace:

Thread 1 (Thread 0xb7fd8720 (LWP 1499)):
#0 0x00000000 in ?? ()
#1 0x04825a3b in ?? () from /usr/lib/dri/i915_dri.so
#2 0x048baa73 in ?? () from /usr/lib/dri/i915_dri.so
#3 0x047f5cc3 in _mesa_execute_program () from /usr/lib/dri/i915_dri.so
#4 0x048ba724 in _swrast_exec_fragment_program () from /usr/lib/dri/i915_dri.so
#5 0x0481640f in ?? () from /usr/lib/dri/i915_dri.so
#6 0x04817ba0 in _swrast_write_rgba_span () from /usr/lib/dri/i915_dri.so
#7 0x048305d2 in ?? () from /usr/lib/dri/i915_dri.so
#8 0x04809e5f in ?? () from /usr/lib/dri/i915_dri.so
#9 0x0480905d in _swrast_Triangle () from /usr/lib/dri/i915_dri.so
#10 0x0483cdaf in ?? () from /usr/lib/dri/i915_dri.so
#11 0x047d5027 in ?? () from /usr/lib/dri/i915_dri.so
#12 0x047d69c9 in ?? () from /usr/lib/dri/i915_dri.so
#13 0x047ca6b3 in _tnl_run_pipeline () from /usr/lib/dri/i915_dri.so
#14 0x047219fd in ?? () from /usr/lib/dri/i915_dri.so
#15 0x047cb406 in _tnl_draw_prims () from /usr/lib/dri/i915_dri.so
#16 0x047cb869 in _tnl_vbo_draw_prims () from /usr/lib/dri/i915_dri.so
#17 0x047c2f31 in ?? () from /usr/lib/dri/i915_dri.so
#18 0x047b9c17 in ?? () from /usr/lib/dri/i915_dri.so
#19 0x014b9c37 in ?? () from /usr/share/qt4/lib/libQtOpenGL.so.4
#20 0x014c5ff1 in ?? () from /usr/share/qt4/lib/libQtOpenGL.so.4
#21 0x008f2f68 in QPaintEngineEx::drawPixmap(QPointF const&, QPixmap const&) () from /usr/share/qt4/lib/libQtGui.so.4
#22 0x00908788 in QPainter::drawPixmap(QPointF const&, QPixmap const&) () from /usr/share/qt4/lib/libQtGui.so.4
#23 0x0834b231 in QPainter...

Read more...

Changed in mixxx:
status: Fix Committed → In Progress
Revision history for this message
Thomas Vincent (vrince) wrote :

Ok I'll add some debug output.
Can you confirm that GL version works ?
Cause they share background renderer ...

I think this should be related to another bug I see time to time where it does not crash but signal frame buffer end to be displayed in GLSL background. Or when I load track in deck 1 the signal FBO of deck to is changed ... I tried to track this down a couple of time with no success :(

Revision history for this message
Thomas Vincent (vrince) wrote :

BTW thanks for testing it, and giving feedback ... it's appreciated.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

GL and Qt GL are working, except bug Bug #981210.
GL reaches around 60 fps Qt GL only 12.
The "filtered waveforms" are not to distinguish in pure GL an outline skin. I thing we should user slightly more colour differences.

Revision history for this message
Thomas Vincent (vrince) wrote :

Regarding colours, please change skins cause making the fallback colour works "well" with all type of colour is tricky.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Issue is solved in lp:~daschuer/mixxx/daschuers_trunk.
Now I am working on a clean patch for 1.11

Changed in mixxx:
assignee: Thomas Vincent (vrince) → Daniel Schürmann (daschuer)
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Attached you find a patch that solves the problem.
It introduces a bool init() function. If init of the selected waveform widget fails, the "empty" Waveform is selected instead.
Additional I have made the type information functions for filling the waveform selection combo box static, to avoid instantiate all the waveform widgets.
I have also notice that some background bitmaps are two pixel to small. The according warning massage is now more detailed.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Patch looks good to me -- thanks Daniel!

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

As a note, I don't know if the current shader linking will ever succeed on a release version of Mixxx since we refer to the shaders located in the ./src/ directory which will never be present if a user is not building from source. Those should be updated to use qt resource paths at some point and be bundled in res/.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Committed to lp:mixxx/1.11 #3399

Changed in mixxx:
status: In Progress → Fix Committed
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/6364

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.