NVIDIA медленнее встроенного INTEL-a

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

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

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

Советуют в конце концов погонять тесты с ключами INTEL_DEBUG=perf PRIMUS_VERBOSE=2
В общем запуск  
INTEL_DEBUG=perf PRIMUS_VERBOSE=2 primusrun glxgears
выдает
$ INTEL_DEBUG=perf PRIMUS_VERBOSE=2 primusrun glxgears                                                       1
Recompiling fragment shader for program 0
  fragment color clamping 1->0
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
У меня другой вывод:
% INTEL_DEBUG=perf PRIMUS_VERBOSE=2 primusrun glxgears
Recompiling fragment shader for program 0
  alphatest, computed depth, depth test, or depth write 12->0
  fragment color clamping 1->0
primus: profiling: display: 60.1 fps, 0.6% wait, 1.6% upload, 97.9% draw+swap
primus: profiling: readback: 60.5 fps, 0.5% app, 2.3% map, 97.2% wait
305 frames in 5.0 seconds = 60.924 FPS
primus: profiling: display: 59.8 fps, 0.0% wait, 1.5% upload, 98.5% draw+swap
primus: profiling: readback: 59.8 fps, 0.0% app, 2.1% map, 97.9% wait
300 frames in 5.0 seconds = 59.840 FPS
primus: profiling: display: 59.8 fps, 0.0% wait, 1.5% upload, 98.5% draw+swap
primus: profiling: readback: 59.8 fps, 0.0% app, 2.1% map, 97.9% wait
300 frames in 5.0 seconds = 59.835 FPS
 ~]$ 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: 0x21
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) Ivybridge Mobile x86/MMX/SSE2
145.825951 frames/sec - 162.741762 Mpixels/sec
159.878874 frames/sec - 178.424823 Mpixels/sec
155.745402 frames/sec - 173.811869 Mpixels/sec
164.192012 frames/sec - 183.238285 Mpixels/sec
174.479025 frames/sec - 194.718591 Mpixels/sec
174.495108 frames/sec - 194.736540 Mpixels/sec
143.675612 frames/sec - 160.341983 Mpixels/sec
 ~]$ vblank_mode=0 optirun glxspheres
Polygons in scene: 62464
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
159.416610 frames/sec - 177.908937 Mpixels/sec
164.279969 frames/sec - 183.336445 Mpixels/sec
155.678436 frames/sec - 173.737134 Mpixels/sec
163.743076 frames/sec - 182.737273 Mpixels/sec
164.967299 frames/sec - 184.103506 Mpixels/sec
164.387859 frames/sec - 183.456850 Mpixels/sec
163.685593 frames/sec - 182.673122 Mpixels/sec
165.512476 frames/sec - 184.711924 Mpixels/sec
164.392978 frames/sec - 183.462563 Mpixels/sec
164.641252 frames/sec - 183.739637 Mpixels/sec
~]$ 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: 0x21
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
96.451231 frames/sec - 107.639574 Mpixels/sec
99.211299 frames/sec - 110.719810 Mpixels/sec
99.339780 frames/sec - 110.863195 Mpixels/sec
98.750344 frames/sec - 110.205384 Mpixels/sec
99.096330 frames/sec - 110.591504 Mpixels/sec
98.987333 frames/sec - 110.469863 Mpixels/sec
99.236373 frames/sec - 110.747792 Mpixels/sec
99.225616 frames/sec - 110.735787 Mpixels/sec
98.939633 frames/sec - 110.416631 Mpixels/sec
99.132842 frames/sec - 110.632252 Mpixels/sec
99.089960 frames/sec - 110.584395 Mpixels/sec
98.740966 frames/sec - 110.194918 Mpixels/sec
~]$ INTEL_DEBUG=perf PRIMUS_VERBOSE=2 primusrun glxgears
Recompiling fragment shader for program 0
  fragment color clamping 1->0
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
primus: profiling: display: 59.9 fps, 0.3% wait, 2.6% upload, 97.1% draw+swap
primus: profiling: readback: 60.3 fps, 0.2% app, 2.4% map, 97.3% wait
304 frames in 5.0 seconds = 60.703 FPS
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
primus: profiling: display: 59.8 fps, 0.0% wait, 2.4% upload, 97.6% draw+swap
primus: profiling: readback: 59.8 fps, 0.0% app, 2.7% map, 97.3% wait
300 frames in 5.0 seconds = 59.823 FPS
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
primus: profiling: display: 59.8 fps, 0.0% wait, 2.5% upload, 97.5% draw+swap
primus: profiling: readback: 59.8 fps, 0.0% app, 2.6% map, 97.4% wait
300 frames in 5.0 seconds = 59.825 FPS
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
primus: profiling: display: 59.8 fps, 0.0% wait, 2.3% upload, 97.7% draw+swap
primus: profiling: readback: 59.8 fps, 0.0% app, 2.7% map, 97.3% wait
300 frames in 5.0 seconds = 59.828 FPS
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
primus: profiling: display: 59.8 fps, 0.0% wait, 2.4% upload, 97.6% draw+swap
primus: profiling: readback: 59.8 fps, 0.0% app, 2.6% map, 97.4% wait
300 frames in 5.0 seconds = 59.822 FPS
Mapping a busy BO, causing a stall on the GPU.
primus: profiling: display: 59.8 fps, 0.0% wait, 2.3% upload, 97.7% draw+swap
primus: profiling: readback: 59.8 fps, 0.0% app, 2.6% map, 97.4% wait
300 frames in 5.0 seconds = 59.825 FPS
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
Mapping a busy BO, causing a stall on the GPU.
primus: profiling: display: 59.8 fps, 0.0% wait, 2.4% upload, 97.6% draw+swap
primus: profiling: readback: 59.8 fps, 0.0% app, 4.5% map, 95.5% wait
300 frames in 5.0 seconds = 59.826 FPS
Mapping a busy BO, causing a stall on the GPU.
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
      after 2243 requests (2243 known processed) with 0 events remaining.
X Error of failed request:  BadDrawable (invalid Pixmap or Window parameter)
  Major opcode of failed request:  153 (DRI2)
  Minor opcode of failed request:  7 (DRI2GetBuffersWithFormat	)
  Resource id in failed request:  0x2000002
  Serial number of failed request:  6660
  Current serial number in output stream:  6660
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
После сегодняшнего обновления примуса еще раз сделал замеры в glxspheres.
По сравнению с предыдущим месяцем примус увеличил свои результаты почти в два раза и вырвался в лидеры. Сейчас расклад такой:
primus  ~210 frames/sec
optirun ~145 frames/sec
intel    ~45 frames/sec
vdemin
После сегодняшнего обновления примуса еще раз сделал замеры в glxspheres.
По сравнению с предыдущим месяцем примус увеличил свои результаты почти в два раза и вырвался в лидеры

А у меня вот intel стал в 2 раза медленнее, а примус не изменился. И вентиляторы стали шуметь и ноут стал греться сильнее. Но зато можно сказать, что разрыв сократился - такими темпами примус скоро догонит интел :(
Заметил, что примус обновился - немедленно метнулся померять

$ vblank_mode=0 optirun glxspheres64
194.875157 frames/sec - 217.480675 Mpixels/sec

$ vblank_mode=0 primusrun glxspheres64
233.065299 frames/sec - 260.100873 Mpixels/sec

$ vblank_mode=0 glxspheres64
211.397031 frames/sec - 235.919086 Mpixels/sec

довольно неожиданно - примус ожидаемо обогнал всех, однако intel обогнал opturun и в общем-то не сильно отстал от примуса
Похоже мейнтейнер primus облажался с 20150118-1, вот мои результаты с 20150118-2 и glxspheres64:
primus  ~227 frames/sec
optirun ~145 frames/sec
intel    ~60 frames/sec
Nvidia практически не изменила свои показатели, а вот Intel молодцы - прирост на треть.
webhive
vdemin
Проблема точно не в железе? В винде (если она есть) прирост наблюдается? BIOS последний?
Не могу сказать насчет железа и винды. Ноутбук куплен летом - биос на момент покупки был последний.

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