[sisyphus] glvnd и optimus?

Ivan A. Melnikov iv на altlinux.org
Чт Ноя 1 12:55:30 MSK 2018


On Thu, Nov 01, 2018 at 12:51:13PM +0300, Anton Farygin wrote:
> 01.11.2018 12:34, Ivan A. Melnikov пишет:
> > По мотивам https://bugzilla.altlinux.org/35064
> > 
> > > Comment #2 From Anton Farygin 2018-11-01 10:55:39 (-) [reply]
> > > 
> > > А что сейчас на свежем Sisyphus ?
> > > Там primusrun не нужен совсем.
> > > Comment #3 From Ivan A. Melnikov 2018-11-01 11:02:06 (-) [reply]
> > [...]
> > > А что нужно? Без ничего 3d работает на интеловской графике, optirun как был,
> > > так и остаётся нерабочий на моём ноуте.
> > > Comment #4 From Anton Farygin 2018-11-01 11:51:52 (-) [reply]
> > > 
> > > glvnd сама опеределяет каким приложениям на какой графике работать. почитайте
> > > описание её архитектуры
> > А что, если я сам хочу это определять?
> > 
> > Вот у меня ноут Dell Inspiron 15-7577 с оптимусом. В июне я добился от
> > него простого: по умолчанию используется интеловская графика, дискретная
> > nVidia выключена и не ест батарейку. Если я хочу мощи и мне не нужно
> > экономить электричество, я запускаю приложение из-под primusrun, он
> > дёргает bumblebee, и это приложение получает всё, на что способен мой
> > ноут.
> > 
> > Меня устраивало, и более того, мне нравилось, что я сам определяю,
> > на какой графике приложению запуститься сейчас.
> > 
> > Можно ли чего-то подобного добиться от glvnd? Если да, то
> > куда копать? Гугл не помогает, изучение архитектуры
> > по README.md к просветлению не привело.
> src/EGL/libegl.c:    name = getenv("EGL_PLATFORM");
> src/EGL/libeglvendor.c:        env =
> getenv("__EGL_VENDOR_LIBRARY_FILENAMES");
> src/EGL/libeglvendor.c:        env = getenv("__EGL_VENDOR_LIBRARY_DIRS");
> src/GLX/libglx.c:        const char *preloadedVendor =
> getenv("__GLX_VENDOR_LIBRARY_NAME");
> src/GLX/libglxmapping.c:        specifiedVendorName = getenv(envName);
> src/GLX/libglxmapping.c:            specifiedVendorName =
> getenv("__GLX_VENDOR_LIBRARY_NAME");
> src/GLdispatch/GLdispatch.c:        char *disallowPatchStr =
> getenv("__GLVND_DISALLOW_PATCHING");
> src/util/app_error_check.c:    env = getenv("__GLVND_APP_ERROR_CHECKING");
> src/util/app_error_check.c:    env = getenv("__GLVND_ABORT_ON_APP_ERROR");
> 
> Дальше предлагаю погуглить эти переменные и нужные значения.
> 

Спасибо, это уже что-то.

--
  wbr,
    iv m.


Подробная информация о списке рассылки Sisyphus