LinuxForum.Fans
Тема

Связка видео Intel(встроенная в проц) + nVidia(дискретная)

Автор: KrackMan 273 сообщений 75256 просмотров
#217117
KrackMan написал:
Так что же глючит, bumblebee или wine? Или же они просто друг с другом не умеют работать? Подскажите, что можно еще сделать?

первый вопрос - как собран сам вайн , с --with-openGL или нет ? Дело в том что при включении этого при сборке вайн использует те библиотеки , которые ставит нвидия . Второй вопрос - патчил ли ты вайн для Кризиса ? дело в том , что последний будет работать только с патчем , вот с этим - тыц . Проверено до 1.3.33 версии (да и судя по последним фиксам это не исправили и в 1.3.35), без этого патча Кризис не будет работать ..

#217204
lognur написал:
я так понимаюу тебя оптимус, и тот bumblebee, что ты нашел - протух.
А новый пока не поддерживает сюсю, так что меняй дистр или жди..

Да, у меня Optimus. Я пользовался вот этим bumblebee: https://github.com/MrMEEE/bumblebee
Может и протух, но он хотя бы поднялся (glxgears и optirun glxgears выдают 60 и 800 fps соответственно).
Дистр менять не хочется, по ряду причин. 1. Пробовал другие, пока консольные команды ЗюЗи мне удобнее, чем у других дистров(я понимаю что они в большей массе одинаковые на дистрах, но zypper куда удобнее apt-get). Хотя скорее всего я просто не созрел еще для других дистров. 2. Я уже обновил систему полностью. На что у меня с моим инетом ушло 1.5 недели. А снова сидеть и ждать пока система обновится нет желания, да к тому же нет гарантий что на другой системе всё будет без сучка и задоринки. А тупо сидеть и ждать не могу, лучше хоть что-то делать, как говорится: "Отсутствие результата - тоже результат". :)

lognur написал:
https://github.com/Bumblebee-Project/Bumblebee
Актуальный. Можешь на dev посидеть, наверное..

А вот тут можно поподробней, что значит на "dev посидеть"? Я где-то видел данное сочетание букв, вроде в xorg.conf, но это пока вся информация которой я владею.

gramozeka написал:
Первый вопрос - как собран сам вайн , с --with-openGL или нет ?

:) А черт его знает как его собирали. Устанавилвал через репу
[console]zypper lr Emulators_Wine[/console]

Показать
[console]
Псевдоним : Emulators_Wine
Имя : Wine (openSUSE_11.4)
URI : http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_11.4/
Включён : Да
Приоритет : 99
Автоматическое обновление : Выкл
Сохранять пакеты : Выкл
Тип : rpm-md
Проверка GPG : Вкл
URI ключа GPG : http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_11.4/repodata/repomd.xml.key
Путь кэша MD : /var/cache/zypp/raw/Emulators_Wine [/console]
gramozeka написал:
Второй вопрос - патчил ли ты вайн для Кризиса ?

Нет. И с чем едят тыц? У меня открывается как текст:
[console]diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index 8bb1f63..8f388ab 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -1499,6 +1499,8 @@ HRESULT buffer_init(struct wined3d_buffer *buffer, IWineD3DDeviceImpl *device,
buffer->flags |= WINED3D_BUFFER_CREATEBO;
}

+ buffer->flags |= WINED3D_BUFFER_DOUBLEBUFFER;
+
if (data)
{
BYTE *ptr;[/console]
Это куда-то дописать нужно? Или сделать sh скрипт и запустить?

#217212
KrackMan написал:
Это куда-то дописать нужно? Или сделать sh скрипт и запустить?

:lol: - посмешил , спасибо ..

в общем стоит изучить вопрос сборки вайна из исходников , если конечно охота пошпилить в Кризис под Линуксом wink .
Как пользоваться патчами - гугль знает конечно же , но если лень можно почитать ман :
[console]
$ man patch
[/console]
тащемта с тривиальными примерами , для ваших целей хватит .

Как собирать вайн из исходных кодов на сайте вайна очень подробно расписано : - тыц .

#217220
gramozeka написал:
Как пользоваться патчами - гугль знает конечно же , но если лень можно почитать ман :

Ну может всё же покажешь правильный пример?
patch attachment.cgi /путь/до/wineФайла ?
Имеет значение как называется файл attachment.cgi или attachment.c, или еще как-нибудь?
И какой файл Wine нужно патчить?

#217223
KrackMan написал:
Ну может всё же покажешь правильный пример?

где-то я тут уже жевал как это делать ...

вот - http://linuxforum.ru/viewtopic.php?pid=175565#p175565

в последних версиях вайна багу с мышом пофиксили наконец-то , поэтому только это патч(предыдущий пост) для Кризиса нужен ..

#217225

В смысле там есть dev ветка, которая поддерживает сюсю. :) А со старым бамбелби не взлетит, ибо наверняка структура сюси или новых дров изменилась.

P.S. В арче bumblbee лучше всего ;)

#217236
gramozeka написал:
где-то я тут уже жевал как это делать ..

:) Боюсь даже представить как вы общаетесь если не пытаетесь разжевать.
2 б) правим слакбилд вот тут - Где вот тут?

#217322
KrackMan написал:
2 б) правим слакбилд вот тут - Где вот тут?

в Зюзе слакбилдов нет :( , так что вам это не нужно , но если внимательно почитать приведённую ссылку , можно понять как использовать то , о чём там написано не только в Слаке , но и в любом другом дистрибутиве . В общем - осваивайте сборку Вайна из исходников и будет вам счастье :rolleyes:

#217413
gramozeka написал:
В общем - осваивайте сборку Вайна из исходников и будет вам счастье

Всему свое время :)
Складывается впечатление, что я не правильно вопросы задаю, поэтому пойду по сложному пути.

Понятно, что сборка Вайна будет хорошим опытом. И тут еще более или менее понятно, что нужно читать. А вот с патччами немного посложнее.
В другой ветке веду обсуждение как завести звук, и aliaksei1818 дал вот такую ссылку Работа с патчами. Может и не то что man выдает, но хотя бы по русски.
Кусок текста с сайта: "diff старый_файл новый_файл". Тут семь пядей во лбу не надо, понятно что для объединения(или патча) нужно два файла "старый_файл" и "новый_файл". Новый файл у меня есть (патчи Вайна для Кризиса), а вот как определить "старый_файл"?
Можно ли считать руководством к действию следующую схему:
1. открываем: crysis_memory_wine-1.1.42.patch
2. В первой же строчке: diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
Видно что патчится buffer.c, правда он лежит в мифической папке А и В.
3. с помощью #updatedb и #locate buffer.c ищем местоположение, если находим то указываем вместе с путем этот файл.
3.1. У меня нашло следующее:
/usr/share/gtk-2.0/demo/entry_buffer.c
/usr/share/systemtap/runtime/transport/ring_buffer.c
И это не удовлетворяет ни одно условие. Нет файла buffer.c, и не присутствует в пути dlls/wined3d

И тут возникает резонный вопрос: Как определять какой файл нужно патчить, и как его можно найти?

+

gramozeka написал:
в Зюзе слакбилдов нет

Это понятно.

++
Помогли разобраться.
И так. Для того что бы пропатчить wine нам нужно для начала обзавестись исходниками Wine. Далее, помещаем файл-патч в папку с исходниками wine (т.е. в корень папки исходников или на папку выше dlls/wined3d). Но перед этим проверяем есть ли такие пути и такой файл: dlls/wined3d/buffer.c . В скаченных мною исходниках все имеется. Ну а дальше используем команду: patch -p1 crysis_memory_wine-1.1.42.patch - параметр -p1 из a/dlls/wined3d/buffer.c уберет а и b, что бы пути были адекватные.
gramozeka, в правильном направлении думаю? (я про patch -p1 crysis_memory_wine-1.1.42.patch)

#217415
KrackMan написал:
в правильном направлении думаю?

да .. собственно нужно заменить только тот файл который патчится , для этого собирай вайн ./configure --bla-bla-bla && make , после найди уже готовый бинарник( dll-файл в папке с исходниками и замени им тот который в уже установленном вайне из дистрибутива что-то типа /usr/lib/wine/fakedlls/wined3d.dll (оригинальный просто переименуй чтоб не затереть) и пробуй Кризис wink

#217416

gramozeka, подскажите где вы взяли патч для wine 1.1.42? Скачал исходники 1.3.35, как теперь найти патч? Гугл ничего толкового не выдает. На http://bugs2.winehq.org ничего похожего не вижу(не регистрировался).
В принципе нашел в buffer.c место которое хочет пропатчить crysis_memory_wine-1.1.42.patch, но номер строк различается, поэтому не уверен в правильности действий. А что хочет изменить madscientist-X11DRV_LeaveNotify.patch, не нашел похожих мест.

#217417
KrackMan написал:
подскажите где вы взяли патч для wine 1.1.42?

ну так я на линуксе уже лет пять - застал ещё первые версии вайна :lol:

KrackMan написал:
но номер строк различается,

это не критично ..

KrackMan написал:
А что хочет изменить madscientist-X11DRV_LeaveNotify.patch, не нашел похожих мест.

в новых версиях вайна это уже пофиксили и он не нужен ...

#217418
gramozeka написал:
KrackMan пишет:
но номер строк различается,
это не критично ..

Просто если запускаю $ patch -p1 crysis_memory_wine-1.1.42.patch . Команду как бы выполняет но ничего не происходит. Ждал минут 15-20, ничего. Это при том что файл который патчим содержит 1300 строк. Видимо patch не знает что ему нужно делать или тупо ищет в цикле без выхода. Тогда остается вариант руками поменять?

#217419
KrackMan написал:
Команду как бы выполняет но ничего не происходит

вот так выглядит правильный выхлоп команды :
[console]
patching file dlls/wined3d/buffer.c
Hunk #1 succeeded at 1249 (offset -250 lines).
patching file dlls/d3d9/tests/buffer.c
[/console]
покажи выхлоп - как он выполняет у тебя ...

P.S. а вообще - тыц , лучший источник решения проблем .

#217424

В том то и дело, что вообще никакого выхлопа нет
[console]$ patch -p1 crysis_memory_wine-1.1.42.patch
{Тут мигает курсор}
[/console]

#217606
KrackMan написал:
В том то и дело, что вообще никакого выхлопа нет

ну так почитать ман то религия не позволяет ??? oO

MAN PATCH написал:

PATCH(1) PATCH(1)

NAME
patch - apply a diff file to an original

SYNOPSIS
patch [options] [originalfile [patchfile]]

значёчки типа " <<>> " есть (ИМХО) операторы , так их разэдак ...

but usually just

patch -pnum <patchfile

DESCRIPTION
patch takes a patch file patchfile containing a difference listing produced by the diff program and applies
those differences to one or more original files, producing patched versions. Normally the patched versions
are put in place of the originals. Backups can be made; see the -b or --backup option. The names of the
files to be patched are usually taken from the patch file, but if there's just one file to be patched it can
be specified on the command line as originalfile.
И ТЭДЭ И ТЭПЭ И В ТОМЖЕ ДУХЕ ...
#217665
gramozeka написал:
ну так почитать ман то религия не позволяет ???

Религия позволяет делать всё, а вот знание английского это "ВСЁ" перечеркивает на нет.
К тому же man patch я ужо не раз делал.

#217678
KrackMan написал:
К тому же man patch я ужо не раз делал.

видимо по диагонали wink ..
вот так надо применять патч :
[console]
~$ cd wine-x.xx.xx
~$ patch -p1 < $PATH_TO/crysis_memory_wine-1.1.42.patch
[/console]
$PATH_TO/crysis_memory_wine-1.1.42.patch - полный путь к файлу патча ..

#217680
gramozeka написал:
вот так надо применять патч :

Спасибо!

В общем:
#./configure --with-opengl --with-x
#zypper rm wine
#make depend && make && make install

Ситуация никак не изменилась. За исключением отсутствия winetricks, немного погулив нашел http://wiki.winehq.org/winetricks_ru, скачал, установил. Кэш от старого winetricks остался.

optirun Crysis - показывает черный экран, который никак не закрыть, только #rcxdm restart (рестарт графики).
Diablo II работает на внутренней видюхе. Походу всё же проблема в Bumblebee.

#217710

Отредактируйте следующую строчку скрипта "/usr/bin/optirun", добавив ключ +v:
[console]vglrun +v -c $VGL_COMPRESS -d $VGL_DISPLAY "$@"[/console]
Запустите приложение с помощью optirun и покажите выхлоп.

Войдите или зарегистрируйтесь, чтобы ответить.