Problem: You believe you have your Linux set up correctly, graphics driver is a good one, direct rendering works as is confirmed by
glxgears (64bit) works fine, and
direct rendering: Yes
However, some 32bit software (e.g. wine) causes errors.
WINEDEBUG=+wgl will reveal:
Direct rendering enabled: False
although driver etc. are recognized properly. Further debugging of the problem can be done with
LIBGL_DEBUG=verbose. The 32bit app will say
libGL: OpenDriver: trying /usr/lib/dri/r600_dri.so libGL error: failed to create dri screen
This shows two things:
- the driver is the correct one (note lib = 32bit vs. lib64 = 64bit as would be the output given by glxgears). If the driver were wrong, there would be an elf class error (you can set the driver path explicitly with
- cannot create dri screen :/
The 64bit one will have
OpenDriver: trying /usr/lib64/dri/r600_dri.so (for example) and no error.
This instance of the problem was caused by the following: the 32bit and 64bit versions of libdrm and/or Mesa were different @_@. This happened due to an X.org upgrade which upgraded the 64bit parts, but the 32bit stuff installed in parallel with an older version (can I blame the package manager for not marking this as a conflict?)
Making sure the various package.x86_64 and package-32bit versions were exactly the same, this problem resolved.