Bug Report OpenGL outstanding bug in Ubuntu 14.04

zenobs

Member
Hi:

I installed OBS from ppa in a desktop machine running lubuntu 14.04 and it worked well. But when I tried to install on a dual-core and quad-core laptops running the same versions of ubuntu, I am getting:

$ obs
Attempted path: share/obs/obs-studio/locale/en-US.ini
Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini
Attempted path: share/obs/obs-studio/locale.ini
Attempted path: /usr/share/obs/obs-studio/locale.ini
Attempted path: share/obs/obs-studio/license/gplv2.txt
Attempted path: /usr/share/obs/obs-studio/license/gplv2.txt
QObject::connect: invalid null parameter
info: OBS (linux)
info: Processor: 2 logical cores
info: Processor: AMD Athlon(tm) II P320 Dual-Core Processor
info: Physical Memory: 2752MB Total
info: Kernel Version: Linux 3.13.0-45-generic
info: Distribution: "Ubuntu" "14.04"
info: audio settings reset:
samples per sec: 44100
speakers: 2
buffering (ms): 1000

info: X and Y: 909 469
Backbuffers: 2
Color Format: 3
ZStencil Format: 0
Adapter: 0

error: Failed to create OpenGL context.
error: Failed to create context!
Segmentation fault (core dumped)


When I checked my OpenGL status (installed from oibaf ppa):

$ glxinfo | grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD RS880
OpenGL core profile version string: 3.1 (Core Profile) Mesa 10.6.0-devel (git-720ba6c 2015-02-25 trusty-oibaf-ppa)
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.6.0-devel (git-720ba6c 2015-02-25 trusty-oibaf-ppa)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.6.0-devel (git-720ba6c 2015-02-25 trusty-oibaf-ppa)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:


dmesg shows a single line:

$ dmesg | grep obs
[ 5830.231728] obs[6247]: segfault at 0 ip 00007fe9045999bc sp 00007fff722e5aa8 error 4 in libc-2.19.so[7fe904516000+1bb000]


Update: After rebooting the computer, I am getting the following:

$ obs
Attempted path: share/obs/obs-studio/locale/en-US.ini
Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini
Attempted path: share/obs/obs-studio/locale.ini
Attempted path: /usr/share/obs/obs-studio/locale.ini
Attempted path: share/obs/obs-studio/license/gplv2.txt
Attempted path: /usr/share/obs/obs-studio/license/gplv2.txt
QObject::connect: invalid null parameter
info: OBS (linux)
info: Processor: 2 logical cores
info: Processor: AMD Athlon(tm) II P320 Dual-Core Processor
info: Physical Memory: 2752MB Total
info: Kernel Version: Linux 3.13.0-46-generic
info: Distribution: "Ubuntu" "14.04"
info: audio settings reset:
samples per sec: 44100
speakers: 2
buffering (ms): 1000

info: X and Y: 909 469
Backbuffers: 2
Color Format: 3
ZStencil Format: 0
Adapter: 0

error: Failed to create OpenGL context.
error: Failed to create context!
*** Error in `obs': munmap_chunk(): invalid pointer: 0x00000000017e6240 ***
Aborted (core dumped)

Thanks in advance!
 
Last edited:
You have OpenGL 3.1, which is not enough to fully run OBS...so it means your GPU is too old :/ (what is your GPU ?)
 
Last edited:

zenobs

Member
In one laptop, it is:
$ lspci | grep VGA
01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880M [Mobility Radeon HD 4225/4250]


Another laptop is not really handy, right at the moment of writing.

If this is a GPU issue, obs runs fine in the windows 7 in the same machine!! So I do not think it is a GPU issue. or maybe!
 
It's more of an API problem: on Windows, OBS mostly uses Direct3D capture (D3D9, D3D10); On Linux, OBS only uses OpenGL capture.
So on Windows, OBS can run perfectly with DirectX 9 on your GPU, but in Linux, OBS can fail to capture video due to a too old OpenGL version.

The only thing you can try on Linux is to go on proprietary drivers instead of OSS ones.
 

dtschmitz

New Member
Someone needs to dig deeper. The explanation given above regarding gpu being too old is unacceptable. The gpu works fine in Windows. Your devs tout this as being a cross-platform product.

I've upload the stderr output for the core dump.
I'm using a ThinkPad 510 core5 with 8GB ram, Antergos Linux and the Intel linux graphics driver is up to date.

Please review and advise.
-- Dietrich
 

dodgepong

Administrator
Forum Admin
It's more complicated than that. OBS uses DirectX 10 on WIndows and OpenGL 3.2 on Linux, so they are two completely different APIs. It's possible there are drivers for Windows that support DirectX 10 but not drivers for Linux that support OpenGL 3.2. If you can find a driver that supports OpenGL 3.2 or later on your Linux machine, then you should be good to go. otherwise, there's nothing that we can do.

dtschmitz, what do you get when you enter this command: glxinfo | grep OpenGL
 

Osiris

Active Member
Someone needs to dig deeper. The explanation given above regarding gpu being too old is unacceptable. The gpu works fine in Windows. Your devs tout this as being a cross-platform product.

I've upload the stderr output for the core dump.
I'm using a ThinkPad 510 core5 with 8GB ram, Antergos Linux and the Intel linux graphics driver is up to date.

Please review and advise.
-- Dietrich

It's still cross-platform even if it doesn't support opengl 3.1 or lower. OBS needs certain OpenGL 3.2 features.
 

WayZHC

Member
Mobility Radeon HD 42XX cards are really low end cards. All HD 4000 cards do support DirectX 10.1 and OpenGL 3.3.
But for some reason HD 42XX cards are DirectX 10.1 and OpenGL 3.1 enabled.

Officially 42XX cards are marked as OpenGL 2.0 cards, but looks like someone has found a way to enable OpenGL 3.1 support from drivers (looks like ATi crippled OpenGL support from 3.1 to 2.0 with their official drivers, but open source drivers enabled it)
 
Top