#695594 xserver-xorg-video-radeon: X segfaults when entering OpenGL mode in Minecraft

Package:
libgl1-mesa-dri
Source:
mesa
Description:
free implementation of the OpenGL API -- DRI modules
Submitter:
The Wanderer
Date:
2012-12-18 09:27:03 UTC
Severity:
normal
#695594#5
Date:
2012-12-10 15:06:21 UTC
From:
To:
Dear Maintainer,

After migrating from xserver-xorg-video-fglrx to xserver-xorg-video-radeon (when
fglrx dropped support for my card), X crashes when I log in to Minecraft,
specifically at the point where the program would transition from 2D to 3D
(OpenGL) mode. This is the only 3D application I really use on this machine, but
glxgears at least does work fine, as does standard 2D-application usage.

Even with every debugging-symbols package I know how to find installed, the
backtrace in Xorg.0.log contains only raw addresses rather than names. However,
I was able to obtain a backtrace according to the instructions on the
XStrikeForce/XServerDebugging page of wiki.debian.org; that is attached.

The console output of the Minecraft session involved is also attached, just in
case it might contain anything useful.

In case it might be relevant: when running under fglrx, I configured this copy
of Minecraft to use "advanced OpenGL", which seemed to provide a performance
improvement with no visible downside. This is stated to require OpenGL 2.0 or
later; I remember once seeing a statement of exactly what calls it uses, but I
can't find that now. It seems possible that disabling that setting might affect
the crash, but I don't see any way to access the configuration options without
getting past the crash first.

If there's anything I can do to help track this down, please don't hesitate to
let me know.

#695594#10
Date:
2012-12-11 09:58:44 UTC
From:
To:
reassign 695594 libgl1-mesa-dri
kthxbye

It crashes in Mesa code, reassigning there.


Note that this crash means minecraft is using indirect rendering, which
is undesirable for a local display. Are you intentionally using indirect
rendering? If not, the output of

LIBGL_DEBUG=verbose glxinfo | grep render

might give hints as to why you're not getting direct rendering.

#695594#19
Date:
2012-12-18 05:26:33 UTC
From:
To:
That was enough for me to track it down, albeit only with about four separate
searches of the entire root partition for one string or another.

It turns out to be because an earlier install of the FGLRX driver - I think from
before there was an officially distributed Debian package for it - had modified
/etc/profile to call /etc/ati/ati-fglrx.sh, which in turn would set
LIBGL_DRIVERS_PATH to something like
'/usr/lib/dri:/usr/lib32/dri:/usr/lib64/dri' if the path was not already set.

After commenting out that line from /etc/profile, and rebooting to be sure it
was cleared from the environment, the crash no longer occurs. I plan to also
clear out the other remnants of that old fglrx install when I have time.

Since Debian doesn't appear to set LIBGL_DRIVERS_PATH by default, but also
doesnt place the architecture-native DRI drivers (in this case, r600_dri.so) in
any of those three locations, they weren't being found. That led to fallback to
indirect rendering mode, which apparently led to the crash.

It's not good to crash when using indirect rendering, of course, and I'd be
willing to conduct tests to help track that crash down if desired - but at least
the direct-rendering mode does appear to work properly. (Though I'd like to know
why, judging from the output of glxgears, I seem to get enforced vsync with
radeon but didn't with fglrx... but that's not really related to this bug.)

#695594#24
Date:
2012-12-18 09:24:56 UTC
From:
To:
The Wanderer <wanderer@fastmail.fm> (18/12/2012):

Because that's the default. vblank_mode=0 overrides that. Trivial to
find on: http://www.x.org/wiki/RadeonFeature#VSYNC

Mraw,
KiBi.