我已经升级到 Slackware 当前版本(从 14.1 开始),除了 OpenGL 之外,一切都工作得很好。 Fglrx 15.302 无法针对正在运行的内核 (4.4.5) 进行编译,因此我决定坚持使用免费驱动程序。然而,尽管一切看起来都很好,但它根本不起作用:
lsmod | egrep 'amdgpu|radeon'
amdgpu 574775 0
radeon 1440055 2
hwmon 3287 3 k10temp,amdgpu,radeon
ttm 71787 2 amdgpu,radeon
drm_kms_helper 108360 2 amdgpu,radeon
drm 277256 6 ttm,drm_kms_helper,amdgpu,radeon
i2c_algo_bit 5190 2 amdgpu,radeon
i2c_core 41745 7 drm,i2c_dev,i2c_piix4,drm_kms_helper,i2c_algo_bit,amdgpu,radeon
Xorg.0.log 提到加载 GLX 扩展:
[ 1427.634] (II) LoadModule: "glx"
[ 1427.635] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 1427.647] (II) Module glx: vendor="X.Org Foundation"
[ 1427.647] (==) AIGLX enabled
[ 1427.647] (==) Assigned the driver to the xf86ConfigLayout
<snip the list of cards>
[ 75978.088] (II) GLX: Initialized DRI2 GL provider for screen 0
[ 76004.515] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[ 76004.515] (II) AIGLX: enabled GLX_ARB_create_context
[ 76004.515] (II) AIGLX: enabled GLX_ARB_create_context_profile
[ 76004.515] (II) AIGLX: enabled GLX_EXT_create_context_es{,2}_profile
[ 76004.515] (II) AIGLX: enabled GLX_INTEL_swap_event
[ 76004.515] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
[ 76004.515] (II) AIGLX: enabled GLX_EXT_framebuffer_sRGB
[ 76004.515] (II) AIGLX: enabled GLX_ARB_fbconfig_float
[ 76004.515] (II) AIGLX: enabled GLX_EXT_fbconfig_packed_float
[ 76004.515] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
[ 76004.515] (II) AIGLX: enabled GLX_ARB_create_context_robustness
[ 76004.516] (II) AIGLX: Loaded and initialized r600
[ 76004.516] (II) GLX: Initialized DRI2 GL provider for screen 0
然而,任何 GL 应用程序都会因以下错误而崩溃:
glxgears
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 21
Current serial number in output stream: 23
glxinfo
name of display: :0
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 24 (X_GLXCreateNewContext)
Value in failed request: 0x0
Serial number of failed request: 16
Current serial number in output stream: 21
任何想法?我错过了什么?
答案1
实际上,问题来自于 NVIDIA 安装程序的一个古老遗迹:
/usr/lib/libXvMCNVIDIA.so.96.43.11
删除所有孤立的 NVIDIA 文件解决了问题!