[sisyphus] glvnd и optimus?

Anton Farygin rider на basealt.ru
Чт Ноя 1 12:51:13 MSK 2018


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");

Дальше предлагаю погуглить эти переменные и нужные значения.



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