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

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Имеется:
NVIDIA GeForce GT 635M (с nvidia optimus)
ALT Linux p7
bumblebee со свежими драйверами от nvidia

Проблема: при запуске некоторых приложений (большинства игр) через optirun корректно отображается только маленькая часть экрана. Если посмотреть на разрешение, с которым запускается игра, можно сделать вывод, что корректная часть имеет размеры где-то около 640х480. Запускаем 640х480 и видим всё, 800х600 — часть экрана чёрная, 1920х1080 — видно только маленький сектор экрана на чёрном фоне. Такое ощущение, что в какой-то момент после создания экрану драйверу дают фиксированную область для рисования.

Некоторые игрушки, на которых тестировал, запускаются правильно. Например, HalfLife 2 работает идеально. А вот уже CS:GO нет.

Лог запуска CS:GO
SDL video target is 'x11'
SDL failed to create GL compatibility profile (whichProfile=0!
This system supports the OpenGL extension GL_EXT_framebuffer_object.
This system supports the OpenGL extension GL_EXT_framebuffer_blit.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample.
This system DOES NOT support the OpenGL extension GL_APPLE_fence.
This system supports the OpenGL extension GL_NV_fence.
This system supports the OpenGL extension GL_ARB_sync.
This system supports the OpenGL extension GL_EXT_draw_buffers2.
This system supports the OpenGL extension GL_EXT_bindable_uniform.
This system DOES NOT support the OpenGL extension GL_APPLE_flush_buffer_range.
This system supports the OpenGL extension GL_ARB_map_buffer_range.
This system supports the OpenGL extension GL_ARB_vertex_buffer_object.
This system supports the OpenGL extension GL_ARB_occlusion_query.
This system DOES NOT support the OpenGL extension GL_APPLE_texture_range.
This system DOES NOT support the OpenGL extension GL_APPLE_client_storage.
This system DOES NOT support the OpenGL extension GL_ARB_uniform_buffer.
This system supports the OpenGL extension GL_ARB_vertex_array_bgra.
This system supports the OpenGL extension GL_EXT_vertex_array_bgra.
This system supports the OpenGL extension GL_ARB_framebuffer_object.
This system DOES NOT support the OpenGL extension GL_GREMEDY_string_marker.
This system supports the OpenGL extension GL_ARB_debug_output.
This system supports the OpenGL extension GL_EXT_direct_state_access.
This system DOES NOT support the OpenGL extension GL_NV_bindless_texture.
This system DOES NOT support the OpenGL extension GL_AMD_pinned_memory.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample_blit_scaled.
This system supports the OpenGL extension GL_EXT_texture_sRGB_decode.
This system supports the OpenGL extension GL_NVX_gpu_memory_info.
This system DOES NOT support the OpenGL extension GL_ATI_meminfo.
This system supports the OpenGL extension GL_EXT_texture_compression_s3tc.
This system supports the OpenGL extension GL_EXT_texture_compression_dxt1.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt3.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt5.
This system supports the OpenGL extension GL_ARB_buffer_storage.
This system DOES NOT support the OpenGL extension GLX_EXT_swap_control_tear.
Using breakpad minidump system 730/13491.192
Using breakpad crash handler
Setting breakpad minidump AppID = 730
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Did not detect any valid joysticks.
CustomMaterialManager: Cached KeyValues materials/models/weapons/v_models/knife_butterfly/knife_butterfly.vmt.
...
CustomMaterialManager: Cached KeyValues materials/models/weapons/v_models/knife_falchion_advanced/knife_falchion_advanced.vmt.
Failed to read the default inventory image file (materials/vgui/inventory_default.vtf)

 ##### swap interval = 0     swap limit = 1 #####
Could not load program cache file glbaseshaders.cfg
Could not find base GL shader cache file
CClientSteamContext logged on = 1
Game.dll loaded for "Counter-Strike: Global Offensive"
CGameEventManager::AddListener: event 'server_pre_shutdown' unknown.
CGameEventManager::AddListener: event 'game_newmap' unknown.
CGameEventManager::AddListener: event 'finale_start' unknown.
CGameEventManager::AddListener: event 'round_start' unknown.
CGameEventManager::AddListener: event 'round_end' unknown.
CGameEventManager::AddListener: event 'difficulty_changed' unknown.
CGameEventManager::AddListener: event 'player_connect' unknown.
CGameEventManager::AddListener: event 'player_disconnect' unknown.
GameTypes: missing mapgroupsSP entry for game type/mode (custom/custom).
GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/cooperative).
****loading serverbrowser_client.so

Проблема существует очень давно и точно не решается старыми/новыми версиями драйверов. Проверено регулярными обновлениями в течение года (некогда было задумываться о решении).
« Последнее редактирование: 30.06.2015 10:42:02 от Hoblin »

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

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
У меня в стим и через primus проблем нет, с HL2 точно, а CS у меня нет.

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
У меня в стим и через primus проблем нет, с HL2 точно, а CS у меня нет.
Я так понял, что у меня нет только с HL2.

Нашёл в логах упоминание о том, куда bumblebee пишет свои иксовые логи. Подтверждается моё интуитивное предположение про рисование VGL в прямоугольник 640х480:
[ 25270.620] (II) NVIDIA(0): Virtual screen size determined to be 640 x 480
Попробовал primusrun, он почему-то пытается использовать встроенный Intel. Да и конкретно эту проблему хочется решить, раз у всех работает.

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

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Попробовал primusrun, он почему-то пытается использовать встроенный Intel. Да и конкретно эту проблему хочется решить, раз у всех работает.
А как вы это поняли??

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Попробовал primusrun, он почему-то пытается использовать встроенный Intel. Да и конкретно эту проблему хочется решить, раз у всех работает.
А как вы это поняли??
i965 — это ведь чипсет?
libGL: OpenDriver: trying /usr/lib/X11/modules/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/X11/modules/dri/i965_dri.so
libGL 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)
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
Да и glxgears запускается с 60fps, как если бы я запустил на встроенном интеле.

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

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

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Читайте ка вы инструкцию да повнимательней и не будет у вас таких вопросов про primus.
Если это касается отключения vsync, то не знал, благодарю. Также проверил, что рендером для primusrun указана NVIDIA.

Остальное выполнено в точности (хотя я читал какую-то другую инструкцию и набивал шишки самостоятельно), но проблема остаётся.
$ primusrun приложениевыводит чёрный экран с курсором, всё сопровождается в консоли:
libGL error: failed to load driver: i965
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
ATTENTION: default value of option vblank_mode overridden by environment.
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
$ optirun приложениезапускает с указанной проблемой (область 640х480)
$ vblank_mode=0 primusrun приложениев точности повторяет поведение primusrun, но glxgears крутит шестерёнки без vsync

Итого: у меня сохраняются проблемы и c optirun, и с primusrun. Про ошибку optirun больше написано в гугле, хотя ответ пока не нашёлся.

Оффлайн StolbovDV

  • Завсегдатай
  • *
  • Сообщений: 72
Что в выводе команды?
$ optirun glxinfo | grep OpenGL

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
$ optirun glxinfo|grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 635M/PCIe/SSE2
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:

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

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
Давайте выхлопы команд:
rpm -qa | grep kernel
rpm -qa | grep nvidia
логи Xorg.0.log и Xorg.8.log, конфиг /etc/X11/xorg.conf и /etc/bumblebee/bumblebee.conf

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

  • alt linux team
  • ***
  • Сообщений: 1 089
  • Intel_i7/nVidia_Optimus, AMD Ryzen 3 2200
$ primusrun приложениевыводит чёрный экран с курсором, всё сопровождается в консоли:
libGL error: failed to load driver: i965
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
ATTENTION: default value of option vblank_mode overridden by environment.
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
А приведите пример того что вы запускаетет от записи в консоли и далее с подробными описаниями.

Оффлайн StolbovDV

  • Завсегдатай
  • *
  • Сообщений: 72
Каким образом запускаете приложение? Steam?

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

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

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
Что-то мне подсказывает что товарищ стим запускает через optirun/primusrun, а оттуда уже игру без всяких опций запуска.
Нет. Описанным способом не запустится вообще.

Сейчас Steam запускается без всяких optirun. Игра запускается скриптом в ~/.local/share/Steam/steamapps/common/*/, в скрипт добавлен запуск бинарника через optirun.
Про то, что стим поддерживает запуск из параметров приложения, я знаю, но ввиду того, что раздельный запуск мне показался более понятным (нет не понятных мне вызовов), я отлаживаю на нём.

Оффлайн Hoblin

  • Давно тут
  • **
  • Сообщений: 32
    • Email
А приведите пример того что вы запускаетет от записи в консоли и далее с подробными описаниями.
Я правильно понял вопрос?
$ bash -x ./hl2.sh
+ '[' -r /etc/bashrc ']'
+ . /etc/bashrc
++ '[' -z hxB ']'
++ cd .
++ echo /home/user/.local/share/Steam/steamapps/common/Half-Life 2
+ GAMEROOT='/home/user/.local/share/Steam/steamapps/common/Half-Life 2'
++ uname
+ UNAME=Linux
+ '[' Linux == Darwin ']'
+ '[' Linux == Linux ']'
+ export 'LD_LIBRARY_PATH=/home/user/.local/share/Steam/steamapps/common/Half-Life 2/bin:'
+ LD_LIBRARY_PATH='/home/user/.local/share/Steam/steamapps/common/Half-Life 2/bin:'
+ '[' -z ']'
+ '[' Linux == Darwin ']'
+ '[' Linux == Linux ']'
+ GAMEEXE=hl2_linux
+ ulimit -n 2048
+ export __GL_THREADED_OPTIMIZATIONS=1
+ __GL_THREADED_OPTIMIZATIONS=1
+ cd '/home/user/.local/share/Steam/steamapps/common/Half-Life 2'
+ '[' -f pathmatch.inf ']'
+ STATUS=42
+ '[' 42 -eq 42 ']'
+ '[' '' == gdb ']'
+ '[' '' == cgdb ']'
+ primusrun '/home/user/.local/share/Steam/steamapps/common/Half-Life 2/hl2_linux'
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.
SDL video target is 'x11'
SDL video target is 'x11'                                                                                                                                                                                                                                                     
This system supports the OpenGL extension GL_EXT_framebuffer_object.                                                                                                                                                                                                         
This system supports the OpenGL extension GL_EXT_framebuffer_blit.                                                                                                                                                                                                           
This system supports the OpenGL extension GL_EXT_framebuffer_multisample.                                                                                                                                                                                                     
This system DOES NOT support the OpenGL extension GL_APPLE_fence.                                                                                                                                                                                                             
This system supports the OpenGL extension GL_NV_fence.                                                                                                                                                                                                                       
This system supports the OpenGL extension GL_ARB_sync.                                                                                                                                                                                                                       
This system supports the OpenGL extension GL_EXT_draw_buffers2.                                                                                                                                                                                                               
This system supports the OpenGL extension GL_EXT_bindable_uniform.                                                                                                                                                                                                           
This system DOES NOT support the OpenGL extension GL_APPLE_flush_buffer_range.                                                                                                                                                                                               
This system supports the OpenGL extension GL_ARB_map_buffer_range.                                                                                                                                                                                                           
This system supports the OpenGL extension GL_ARB_vertex_buffer_object.                                                                                                                                                                                                       
This system supports the OpenGL extension GL_ARB_occlusion_query.                                                                                                                                                                                                             
This system DOES NOT support the OpenGL extension GL_APPLE_texture_range.                                                                                                                                                                                                     
This system DOES NOT support the OpenGL extension GL_APPLE_client_storage.                                                                                                                                                                                                   
This system DOES NOT support the OpenGL extension GL_ARB_uniform_buffer.                                                                                                                                                                                                     
This system supports the OpenGL extension GL_ARB_vertex_array_bgra.                                                                                                                                                                                                           
This system supports the OpenGL extension GL_EXT_vertex_array_bgra.                                                                                                                                                                                                           
This system supports the OpenGL extension GL_ARB_framebuffer_object.                                                                                                                                                                                                         
This system DOES NOT support the OpenGL extension GL_GREMEDY_string_marker.                                                                                                                                                                                                   
This system supports the OpenGL extension GL_ARB_debug_output.                                                                                                                                                                                                               
This system supports the OpenGL extension GL_EXT_direct_state_access.                                                                                                                                                                                                         
This system DOES NOT support the OpenGL extension GL_NV_bindless_texture.                                                                                                                                                                                                     
This system DOES NOT support the OpenGL extension GL_AMD_pinned_memory.                                                                                                                                                                                                       
This system supports the OpenGL extension GL_EXT_framebuffer_multisample_blit_scaled.                                                                                                                                                                                         
This system supports the OpenGL extension GL_EXT_texture_sRGB_decode.                                                                                                                                                                                                         
This system supports the OpenGL extension GL_NVX_gpu_memory_info.                                                                                                                                                                                                             
This system DOES NOT support the OpenGL extension GL_ATI_meminfo.                                                                                                                                                                                                             
This system supports the OpenGL extension GL_EXT_texture_compression_s3tc.
This system supports the OpenGL extension GL_EXT_texture_compression_dxt1.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt3.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt5.
This system DOES NOT support the OpenGL extension GLX_EXT_swap_control_tear.
GL_NV_bindless_texture: DISABLED
GL_AMD_pinned_memory: DISABLED
GL_EXT_texture_sRGB_decode: AVAILABLE
libGL error: failed to load driver: i965
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
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