Автор Тема: Bumblebee: отображается только часть экрана [решено]  (Прочитано 5807 раз)

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Что-то мне подсказывает что товарищ стим запускает через optirun/primusrun, а оттуда уже игру без всяких опций запуска.
Нет. Описанным способом не запустится вообще.

Сейчас Steam запускается без всяких optirun. Игра запускается скриптом в ~/.local/share/Steam/steamapps/common/*/, в скрипт добавлен запуск бинарника через optirun.
Про то, что стим поддерживает запуск из параметров приложения, я знаю, но ввиду того, что раздельный запуск мне показался более понятным (нет не понятных мне вызовов), я отлаживаю на нём.
Пропишите в параметрах запуска игры primusrun %command% (это самый правильный способ запуска (рекомендовано valve), 99% игр запускается) и отпишитесь о результатах если неполучится значит вываливайте все что выше указывалось, primusrun собирался как раз для данной цели, т.к. вашим методом запустится малая часть игр, например ни один wargame вы таким способом не запустите, а через primusrun работает на ура.
« Последнее редактирование: 26.06.2015 21:23:27 от BarsSc »

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Через primusrun %command% из интерфейса стима не запускается никак.

Давайте выхлопы команд:

kernel
kernel-modules-alx-std-def-20130405-alt1.200236.1
kernel-modules-drm-radeon-std-def-3.14.44-alt1
kernel-modules-virtualbox-addition-std-def-4.3.26-alt1.200236.1
kernel-modules-fglrx-std-def-14.501.1003-alt2.200236.1
kernel-modules-drm-std-def-3.14.44-alt1
kernel-modules-omnibook-std-def-20110911-alt1.200236.1
kernel-image-std-def-3.14.44-alt1
kernel-modules-nvidia-std-def-346.72-alt0.M70P.1.200236.1
kernel-modules-bbswitch-std-def-0.8-alt1.200236.1
kernel-modules-v4l-std-def-3.14.44-alt1
kernel-headers-common-1.2.4-alt1
kernel-modules-tp_smapi-std-def-0.41-alt2.200236.1
kernel-modules-virtualbox-std-def-4.3.26-alt1.200236.1
kernel-modules-bcmwl-std-def-6.30.223.248-alt5.200236.1
kernel-modules-kvm-std-def-3.14.44-alt1
update-kernel-0.9.5-alt1

nvidia
nvidia_glx_340.76-340.76-alt138
i586-nvidia_glx_340.58-340.58-alt135
nvidia_glx_173.14.39-173.14.39-alt74
i586-nvidia-settings-346.59-alt0.M70P.1
i586-nvidia_glx_340.65-340.65-alt136
nvidia_glx_340.65-340.65-alt136
i586-nvidia_glx_346.72-346.72-alt141
nvidia_glx_common-346.72-alt151
kernel-modules-nvidia-std-def-346.72-alt0.M70P.1.200236.1
nvidia_glx_340.58-340.58-alt135
nvidia_glx_304.125-304.125-alt124
nvidia_glx_346.72-346.72-alt141
nvidia-settings-346.59-alt0.M70P.1
i586-nvidia_glx_common-346.72-alt151
apt-scripts-nvidia-0.2.0-alt1

xorg.conf
Section "Device"
    Identifier     "Device1"
    Driver         "intel"
    VendorName     "onboard"
    BusID          "PCI:0:2:0"
EndSection

Section "Monitor"
    Identifier "Monitor0"
    Option         "DPMS"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device1"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

bumblebee.conf
# Configuration file for Bumblebee. Values should **not** be put between quotes

## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=xgrp
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d

## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/primus:/usr/lib32/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false


# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
#         bbswitch - new in BB 3, recommended if available
#       switcheroo - vga_switcheroo method, use at your own risk
#             none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia
PMMethod=bbswitch
# colon-separated path to the nvidia libraries
LibraryPath=/etc/X11/lib_nvidia
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/etc/X11/lib_nvidia,/usr/lib64/X11/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=bbswitch
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau
« Последнее редактирование: 26.06.2015 21:42:21 от Hoblin »

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Bumblebee у вас нормально работает, про стим вам ответили, если хотите своим методом запускать, то увы вам здесь никто не поможет, все запускают через параметры запуска игры primusrun %command%

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Bumblebee у вас нормально работает, про стим вам ответили, если хотите своим методом запускать, то увы вам здесь никто не поможет, все запускают через параметры запуска игры primusrun %command%
Я рад, что у всех запускается. Буду благодарен, если натолкнёте на мысль, почему не запускается у меня. Любой запуск через primusrun %command% приводит только к миганию экрана (запустились и упали?).

Update: нет, поторопился. Запускается такой же чёрный экран, что и "моим методом". Подозреваю, что методы одинаковые.
« Последнее редактирование: 26.06.2015 21:57:03 от Hoblin »

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Надеюсь так прописываете? Скрипты запуска возвращаете в исходное состояние?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Что выдаёт
service bumblebeed status

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Надеюсь так прописываете? Скрипты запуска возвращаете в исходное состояние?
Да, именно так.
Что выдаёт
service bumblebeed status
active

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Перебрал несколько игрушек в библиотеке. Нашёл запускающуюся RogueLegacy.
1) через primusrun работает отлично;
2) через optirun получает неправильное разрешение.

Остальные точно так же запускаются через optirun со сбитым разрешением, а вот primusrun даёт какие-то ошибки:
- Half Life: чёрный экран;
- Half Life2: не запускается без видимых ошибок;
- CS GO: запускает процессы (и стим считает приложение запущенным), но ничего не показывает на экране.

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Запустите стим через консоль, в стиме запустите игру через primusrun и выхлоп сюда прикрепите.

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Запустите стим через консоль, в стиме запустите игру через primusrun и выхлоп сюда прикрепите.
В общем-то, ничем не отличается от того, что я получал, запуская изменённым на primusrun скриптом:
Game update: AppID 730 "Counter-Strike: Global Offensive", ProcID 4071, IP 0.0.0.0:0
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 4074 != 4072, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 4088 != 4072, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
libGL error: failed to load driver: i965
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
libGL error: failed to load driver: i965
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
libGL error: failed to load driver: i965
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
Installing breakpad exception handler for appid(gameoverlayui)/version(20150604103636)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  72 (X_PutImage)
  Serial number of failed request:  33
  Current serial number in output stream:  65
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1433441724)
Installing breakpad exception handler for appid(steam)/version(1433441724)
Installing breakpad exception handler for appid(steam)/version(1433441724)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
У вас почему-то не переключается на драйвер nvidia.
А просто драйвер nvidia с вашей nvidia картой работает?
Может в нём проблема?

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
У вас почему-то не переключается на драйвер nvidia.
А просто драйвер nvidia с вашей nvidia картой работает?
Может в нём проблема?
По спецификации драйвера (346.72) поддержка видеокарты есть.
При запуске через optirun переключение происходит. Да и с примусом, если верить glxinfo, карта должна переключаться:
$ primusrun glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 635M/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 346.72
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5.0 NVIDIA 346.72
OpenGL shading language version string: 4.50 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

Да, драйверов за последнее время поменялось несколько — с полгода назад пробовал примус впервые, потом после обновлений, а обновления драйверов прилетают примерно раз в месяц.
« Последнее редактирование: 27.06.2015 23:14:21 от Hoblin »

Оффлайн БарсSc

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
А дайте ка выхлоп
rpm -qa | grep primus

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
А дайте ка выхлоп
rpm -qa | grep primus
$ rpm -qa|grep primus
primus-20140118-alt1
i586-primus-20140118-alt1

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Может, подскажете что-нибудь про механику работы primus'а?

В какой момент он должен переключать видеокарту, почему этого может не происходить? Почему glxinfo, glxgears и часть игрушек работают так, как будто всё хорошо?(см. update)

Что касается самой ошибки, то драйвер i965 находится в xorg-dri-intel, но 32-битного пакета я не нашёл, так что
ibGL error: dlopen /usr/lib/X11/modules/dri/i965_dri.so failed (/usr/lib/X11/modules/dri/i965_dri.so: cannot open shared object file: No such file or directory)вполне ожидаемо, при условии, что драйвер зачем-то примусу нужен.

Update: вот так запускается RogueLegacy:
libGL: OpenDriver: trying /usr/lib64/X11/modules/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib64/X11/modules/dri/i965_dri.so
С какой картой оно работает в итоге, интересно...
« Последнее редактирование: 29.06.2015 15:37:29 от Hoblin »