統合カードとディスクリートカードの2つのAMDGPUを搭載したノートブックでGentooを使用しています。 lspci
が返すものは次のとおりです。
00:01.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Richland [Radeon HD 8650G] [1002:990b]
Subsystem: Micro-Star International Co., Ltd. [MSI] Richland [Radeon HD 8650G] [1462:10ef]
Kernel driver in use: radeon
--
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Neptune XT [Radeon HD 8970M] [1002:6801] (rev ff)
Kernel driver in use: radeon
オープンソースドライバを今すぐセットアップする正しい方法は何ですか? Gentoo Wikiの機能サポートテーブル によると、私はmake.conf
に設定しました。
VIDEO_CARDS="radeon r600 radeonsi"
したがって、両方のGPUをサポートするために両方のドライバーが存在します。気になるのはglxinfo
出力です。
$ DRI_PRIME=0 glxinfo | grep -i opengl # integrated gpu
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD ARUBA
OpenGL version string: 2.1 Mesa 10.3.7
OpenGL shading language version string: 1.30
$ DRI_PRIME=1 glxinfo | grep -i opengl # discrete gpu
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD PITCAIRN
OpenGL version string: 2.1 Mesa 10.3.7
OpenGL shading language version string: 1.30
繰り返しますが、上記の機能表によると、両方のGPUのドライバーは少なくともOpenGL 3.3をサポートしていますが、ここでは明らかにそうではありません。私は何か間違ったことをしていますか?
実際、1週間ほど苦労し、試み、潜んでいた後、ロシアのLinuxコミュニティの誰かが私を助けてくれたので、ここに再投稿します。その理由は、mesaパッケージに対して有効なbindist
使用フラグでした。
~ $ equery uses mesa
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for media-libs/mesa-11.0.0_rc2:
U I
+ + abi_x86_32 : 32-bit (x86) libraries
+ + bindist : Disable patent-encumbered ARB_texture_float, EXT_texture_shared_exponent, and EXT_packed_float extensions.
+ + classic : Build drivers based on the classic architecture.
...
さらに良いことに、bindist
使用フラグをグローバルに有効にしました。 make.conf
から削除した後、media-libs/mesa
のpackage.use
のclassic
使用フラグも無効にし、mesaを再マージしました。
~ $ DRI_PRIME=0 glxinfo | grep -i opengl
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD ARUBA (DRM 2.43.0, LLVM 3.7.0)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.0.0-rc2
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.0.0-rc2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.0.0-rc2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
~ $ DRI_PRIME=1 glxinfo | grep -i opengl
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD PITCAIRN (DRM 2.43.0, LLVM 3.7.0)
OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.0.0-rc2
OpenGL core profile shading language version string: 4.10
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.0.0-rc2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.0.0-rc2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00