Вот еще нашел интересно по теме

https://github.com/amonakov/primus/issues/33

Вывод из статьи насколько я понял такой, что тормозит именно intel-овская карта, т.к. опять же насколько я правильно понимаю технологию optimus картинку считает nvidia, а потом она отдается на вывод intel-овской карте. И типа вот где тут и есть узкое место. Т.е. может быть смысл есть поковырять как раз какие-то опции intel-овского драйвера.

Советуют в конце концов погонять тесты с ключами INTEL_DEBUG=perf PRIMUS_VERBOSE=2
vdemin
Проблема точно не в железе? В винде (если она есть) прирост наблюдается? BIOS последний?
Не могу сказать насчет железа и винды. Ноутбук куплен летом - биос на момент покупки был последний.

vdemin
а у вас какие результаты glxspheres с vblank_mode=0?
Пока не скажу - провел тут еще пару экспериментов - сейчас драйвер nvidia не грузится :) надо ребутиться
vdemin
Кстати, заметил еще такой момент - primusrun раскочегаривается как-то долго. Если подождать, то результаты вырастут:

Попробовал - минут 5 гонял скачет примерно 2900 - 3090, но никакой тенденции к увеличению в моем случае не обнаружил.
Нагрелся правда - будь здоров - аж ляжку прижгло. Т.е. заметно, что карточка трудится на полную катушку.
vdemin
Правда, все равно до optirun не дотягивает.

Это кстати тоже ненормально. Насколько я понимаю самым быстрым должен быть именно примус.
Мммда - странно все это. Я пока на такие эксперименты не готов ... хотя может к следующим выходным созрею.

Насчет nvidia-libgl я тоже экспериментировал. В случае с bumblebee используется та-же libGL, что и в пакете nvidia-libgl, просто bumblebee ее хранит в другом месте и на лету меняет путь к библиотекам, так что я почему-то думаю дело не в ней.

Думаю еще какую-нибудь демку со стима может поставить и FPS посмотреть, но опять же это уже до следующих выходных.
vdemin
Но при vblank_mode=0 показатели не сильно увеличились:
% vblank_mode=0 primusrun glxspheres

Если не трудно попробуйте еще встроенную карточку с vblank_mode=0, чтоб было более корректное сравнение.
vdemin
Низкое значение primusrun получается из-за эффекта vsync:
https://github.com/amonakov/primus#faq

Категорически не согласен - vblank_mode=0 выключает vsync, иначе мы будем видеть не реальный FPS, а синхронизированный с частотой обновления экрана, т.е. всегда значение порядка 60 в обоих случаях и соотвественно не сможем их сравнить.

По ссылке как раз и говорится про, то, что выключение vsync это ненужная потеря энергии т.к. нет смысла обрабатывать картинку быстрее, чем частота обновления экрана. Но бенчмарки надо делать именно с выключенным vsync т.е. vblank_mode=0.
C glxspheres я тоже экспериментировал, но на всякий случай попробовал еще раз (все таки много чего менял). Вот, что у меня получилось:

Intel

$ vblank_mode=0 glxspheres
Polygons in scene: 62464
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) Ivybridge Mobile
196.493652 frames/sec - 219.286916 Mpixels/sec
227.635506 frames/sec - 254.041224 Mpixels/sec
227.148957 frames/sec - 253.498236 Mpixels/sec

Nvidia

$vblank_mode=0 primusrun glxspheres
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Polygons in scene: 62464
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 640M/PCIe/SSE2
199.666247 frames/sec - 222.827532 Mpixels/sec
204.844571 frames/sec - 228.606541 Mpixels/sec
204.993964 frames/sec - 228.773264 Mpixels/sec

$ vblank_mode=0 optirun glxspheres
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 640M/PCIe/SSE2
215.914315 frames/sec - 240.960375 Mpixels/sec
226.120276 frames/sec - 252.350228 Mpixels/sec
226.914442 frames/sec - 253.236517 Mpixels/sec

Ну что - результаты хоть и улучшились, но все одно интел быстрее, хотя в случае с optirun практически идентичная производительность.
Я по прежнему не удовлетворён. Заявленная цель не достигнута - дискретная карта не дает никакого прироста производительности, а только лишь ненужный нагрев и потребление энергии.
Тааак - нарыл еще подозрительную штуку

Intel
$ xdriinfo
Screen 0: i965

Nvidia
$ primusrun xdriinfo
libGL is too old.

Т.е. судя по всему DRI на nvidia не работает т.к. с ним в комплекте идет устаревшая libGL (относительно чего только она устарела не вполне понятно)
На этом я пока иссяк :(

Похоже проблемы такой или нет ни у кого или просто никто внимания не обращает.
Сейчас nvidia. Про нуво я упомянул, потому, что проблема была точно такая-же - низкая производительность, просто в случае с нуво я все списал на недоработку открытого драйвера.

Насчет glxgears c одной стороны конечно согласен, что синтетические тесты они не совсем то что надо.

Но во первых сама проблема была обнаружена как раз в реальном приложении (игрушка со стима). С optirun/primus производительность просела так, что стало заметно "невооруженным взглядом".

А во вторых glxgears это утилита, которая есть практически в любом дистре и которая выдает хоть какие-то осмысленные цифры, позволяющие проводить сравненния.

Ну и в третьих - хоть и синтетические бенчмарки они "ни о чем", но разница в 2-3 раза это все-таки существенный фактор, который трудно игнорировать даже в этом случае.