1

Я использую Gentoo на ноутбуке с двумя графическими процессорами AMD: встроенной и дискретной. Вот что возвращает 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"

поэтому присутствуют оба драйвера для поддержки обоих графических процессоров. Что меня беспокоит, так это вывод 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

Опять же, согласно приведенной выше таблице функций, драйверы для обоих графических процессоров поддерживают, по крайней мере, OpenGL 3.3, что, очевидно, здесь не так. Я делаю что-то неправильно?

1 ответ1

2

На самом деле, после борьбы, попыток и утаивания в течение недели или около того, какой-то парень из российского сообщества Linux помог мне, поэтому я перепишу это здесь. Причиной был bindist использования биндиста для пакета mesa:

~ $ 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 я также отключил classic флаг использования для media-libs/mesa в package.use и снова включил 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .