LINUX.ORG.RU

Как включить OpenGL >2.1 на AMD Radeon?

 , , ,


0

1

Всем привет,

есть ноутбук с гибридной графикой:

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

На ноутбуке установлена:

Linux msi_gx70 4.2.0-gentoo-r1 #8 SMP Fri Sep 4 13:28:21 CEST 2015 x86_64 AMD A10-5750M APU with Radeon(tm) HD Graphics AuthenticAMD GNU/Linux

Релевантные пакеты/версии:

[IP-] [  ] media-libs/mesa-11.0.0_rc2:0
[IP-] [  ] sys-devel/llvm-3.7.0:0/3.7.0
[IP-] [  ] x11-libs/libdrm-2.4.64:0
[IP-] [  ] x11-drivers/xf86-video-ati-7.5.0:0
[IP-] [  ] x11-base/xorg-drivers-1.17:0

Настройка видео проведена в соответствии с гайдом на Gentoo Wiki. Проблема в следующем:

~ $ 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 version string: 2.1 Mesa 11.0.0-rc2
OpenGL shading language version string: 1.30
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 11.0.0-rc2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16

~ $ 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 version string: 2.1 Mesa 11.0.0-rc2
OpenGL shading language version string: 1.30
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 11.0.0-rc2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16

Вроде оба чипа поддерживают OpenGL 4.X; судя по табличке на freedesktop.org, свободный драйвер (r600/radeonsi) поддерживает OpenGL 3.3. Но система показывает поддержку только версии OpenGL 2.1. В чем может быть проблема?

Еще проверьпри конфигурации месы есть ли такая опция --enable-texture-float

Behem0th ★★★★★ ()
Ответ на: комментарий от Behem0th

Проверь либа libtxc_dxtn установлена или нет?

Есть такая:

[IP-] [  ] media-libs/libtxc_dxtn-1.0.1-r1:0

Еще проверьпри конфигурации месы есть ли такая опция --enable-texture-float

А как это сделать? Извини, я просто на 95% нуб еще.

DELETE_FROM ()
Ответ на: комментарий от DELETE_FROM

В ебилде посмотреть, хотя если ебилд из портежа, там всё правильно включено.

anonymous ()
Ответ на: комментарий от DELETE_FROM

А как это сделать?

Гдето внутри ебилда месы, я генту в глаза не видел.

Behem0th ★★★★★ ()
Последнее исправление: Behem0th (всего исправлений: 1)
Ответ на: комментарий от anonymous

В ебилде посмотреть

Если я только правильно ищу, то:

grep -i enable-texture-float /var/db/pkg/media-libs/mesa-11.0.0_rc2/mesa-11.0.0_rc2.ebuild
ничего не находит.

А юз bindist не выставлен?
Вообще покажи с какими юзами mesa собрана.

bindist активирован, правда я не знаю отчего. Причем он активирован еще и глобально в make.conf. Кажется, из-за отсутствия этого флага портедж отказывался компилировать другой пакет; видимо, я тогда сдуру активировал его глобально, не разобравшись толком, зачем он нужен. Я сейчас попробую заново скомпилировать 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.
 - - d3d9                 : Enable Direct 3D9 API through Nine state tracker. Can be used together with patched wine.
 - - debug                : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
                            https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
 + + dri3                 : Enable DRI3 support.
 + + egl                  : Enable EGL support.
 + + gallium              : Build drivers based on Gallium3D, the new architecture for 3D graphics drivers.
 + + gbm                  : Enable the Graphics Buffer Manager for EGL on KMS.
 - - gles1                : Enable GLESv1 support.
 + + gles2                : Enable GLESv2 support.
 + + llvm                 : Enable LLVM backend for Gallium3D.
 + + nptl                 : Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually)
 - - opencl               : Enable the Clover Gallium OpenCL state tracker.
 - - openmax              : Enable OpenMAX video decode/encode acceleration for Gallium3D.
 - - osmesa               : Build the Mesa library for off-screen rendering.
 - - pax_kernel           : Enable if the user plans to run the package under a pax enabled hardened kernel
 - - pic                  : disable optimized assembly code that is not PIC friendly
 + + udev                 : Enable virtual/udev integration (device discovery, power and storage device support, etc)
 - - vaapi                : Enable Video Acceleration API for hardware decoding
 - - vdpau                : Enable the VDPAU acceleration interface for the Gallium3D Video Layer.
 - - video_cards_i915     : VIDEO_CARDS setting to build driver for Intel i915 video cards
 - - video_cards_i965     : VIDEO_CARDS setting to build driver for Intel i965 video cards
 - - video_cards_ilo      : VIDEO_CARDS setting to build unofficial gallium driver for Intel gen6/7 video cards
 - - video_cards_intel    : VIDEO_CARDS setting to build driver for Intel video cards
 - - video_cards_nouveau  : VIDEO_CARDS setting to build reverse-engineered driver for nvidia cards
 - - video_cards_r100     : VIDEO_CARDS setting to build only r100 based chips code for radeon
 - - video_cards_r200     : VIDEO_CARDS setting to build only r200 based chips code for radeon
 - - video_cards_r300     : VIDEO_CARDS setting to build only r300, r400 and r500 based chips code for radeon
 + + video_cards_r600     : VIDEO_CARDS setting to build only r600, r700, Evergreen and Northern Islands based chips code for radeon
 + + video_cards_radeon   : VIDEO_CARDS setting to build driver for ATI radeon video cards
 + + video_cards_radeonsi : VIDEO_CARDS setting to build only Southern Islands based chips code for radeon
 - - video_cards_vmware   : VIDEO_CARDS setting to build driver for vmware video cards
 + + wayland              : Enable support for dev-libs/wayland
 - - xa                   : Enable the XA (X Acceleration) API for Gallium3D.
 - - xvmc                 : Enable the XvMC acceleration interface for the Gallium3D Video Layer.
DELETE_FROM ()
Ответ на: комментарий от DELETE_FROM

bindist активирован ... Причем он активирован еще и глобально

Убирай глобально, он много чего ломает и нужен только для патентной чистоты. classic тоже убирай.

anonymous ()

https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/mesa/mesa-11.0.0_rc...

Глянул ебил. Есть такая строка.

$(use_enable !bindist texture-float) \

Включается как я понял так

# warn about patent encumbered texture-float
	if use !bindist; then
		elog "USE=\"bindist\" was not set. Potentially patent encumbered code was"
		elog "enabled. Please see patents.txt for an explanation."

Как я понял тебе аноним правильно подсказал убрать bindist глобально.

Behem0th ★★★★★ ()
Последнее исправление: Behem0th (всего исправлений: 1)
Ответ на: комментарий от Behem0th

Убирай глобально, он много чего ломает и нужен только для патентной чистоты. classic тоже убирай.

Как я понял тебе аноним правильно подсказал убрать bindist глобально.

Ребята, вы лучшие! Спасибо огромное! Закончил компилировать 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

DELETE_FROM ()
Ответ на: комментарий от DELETE_FROM

Глобально пересобери, у тебя еще gstreamer и ffmpeg убойно собраны.

steemandlinux ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.