I have problems with a (Ubuntu)
laptop with a i915 based gfx with certain OpenGL applications.
glxinfo rapports that DRI
is enabled and programs like glxgears and ppracer works with good frame rates. However, when trying to run applications based on the OGRE framework, all I get is a black scene. Disabling
DRI makes the same programs render the scenes.
I've carefully read a lot of problem info's and FAQ's the past days, and I still can't figure this out. I suspect it could somehow be related to DRI
(either a bug or bad configuration).
I haven't played around with
OpenGL for some years, so DRI is completely new to me. I struggle to understand how everything fit's together so that I at least can isolate where _not_ to look.
From this link (http://dri
.freedesktop.org/wiki/DriTroubleshooting) I however I noticed some things that seem suspicious.
- Under "User Space setup" it says that dri drivers should be located in /usr/X11R6/lib/modules/dri/ , on my system these are located in /usr/lib/dri/ , Which would be the correct location?
- Also It says that glxinfo should output "libGL: OpenDriver: trying /usr/X11R6/lib/modules/dri/<name>_dri.so". This is not the case on my system. I've followed the hints and reinstalled libGL just to make sure no old or obsolete version is contaminating the system (Ubuntu actually seems to have an issue with this file if nvidia drivers has previously been installed on the system). The file belonged to the package libgl1-mesa, but reinstalling it did not make any difference.
- Neither 'export LIBGL_DEBUG=verbose' nor setting any other environment variables seems to make any difference. Unless I'm missing something obvious, setting this variable in a shell from where a OpenGL program is run, should mean outputting some debug info on the stdout/stderr?
- The system-wide configuration file /etc/drirc (mentioned in http://dri.freedesktop.org/wiki/ConfigurationInfrastructure) does not exist.
I can't figure out which part of the system is responsible
loading /usr/lib/dri/i915_dri.so. Running 'ldd
doesn't seem to imply any dependency on any DRI libraries.
Any hint's about how to debug the various layers involved would be most welcome. Is it possible to profile libGL
.so in any way so that calls to each function results in output in some file in case there actually exists a bug and I need to isolate exactly where?
Any advice is welcome.