OberonCore https://forum.oberoncore.ru/ |
|
BB под Wine в Ubuntu 16.04 https://forum.oberoncore.ru/viewtopic.php?f=34&t=5687 |
Страница 1 из 1 |
Автор: | Иван Денисов [ Суббота, 30 Апрель, 2016 05:00 ] |
Заголовок сообщения: | BB под Wine в Ubuntu 16.04 |
Сам ББ работает нормально, а вот использование подсистемы Ogl затруднительно... При команде glClear вылетает приложение с фатальной ошибкой. Код: wine: Unhandled exception 0xc0000090 in thread 9 at address 0x7d6e0e6e (thread 0009), starting debugger...
Unhandled exception: invalid float operation in 32-bit code (0x7d6e0e70). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7d6e0e70 ESP:0060f9f0 EBP:00000000 EFLAGS:00210246( R- -- I Z- -P- ) EAX:00000005 EBX:00000000 ECX:00000000 EDX:7efd3000 ESI:7ce85504 EDI:00000000 Stack dump: 0x0060f9f0: 40a00000 00000000 7d6be2e9 7d9f7000 0x0060fa00: 7ce85504 00000006 00000000 00000000 0x0060fa10: 00000001 00000040 00000040 00000040 0x0060fa20: 00000040 00000001 00000001 00000001 0x0060fa30: 00000000 00000000 00000000 00000000 0x0060fa40: 00000002 00000000 00000007 7d9f7000 Backtrace: =>0 0x7d6e0e70 in i965_dri.so (+0x398e70) (0x00000000) 1 0x7d6c855f in i965_dri.so (+0x38055e) (0x7ce85504) 2 0x7d6af1b3 in i965_dri.so (+0x3671b2) (0x7ce85504) 3 0x7d6b7251 in i965_dri.so (+0x36f250) (0x0060fc28) 4 0x7d6b7e6e in i965_dri.so (+0x36fe6d) (0x00000001) 5 0x7d69f520 in i965_dri.so (+0x35751f) (0x00000000) 6 0x7d38cd88 in i965_dri.so (+0x44d87) (0x00000001) 7 0x7e062da0 glClear+0x5f() in opengl32 (0x0060fdd8) 8 0x0040118b in lesson2 (+0x118a) (0x0060fdf4) |
Автор: | Иван Денисов [ Суббота, 30 Апрель, 2016 23:39 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Сборка последнего Wine 1.9.9 из исходников не помогла. |
Автор: | prospero78 [ Воскресенье, 01 Май, 2016 10:26 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Если верить сообщению, то ошибка в ДЛЛ от драйверов чипсета 965 (Интел). Так что здесь надо драйвера обновить (скорее), чем вайн (две версии, и обе не работают). И обрати внимание, там тред #9. Т.е. проблемы не в главном потоке (вайн). Есть мнение, что это может быть связано с нарушением при делении на ноль (смотри на есх, евх похоже пытается поделить 5 (или что-то SHORTREAL в виде INTEGER=5) на ноль -- флаг Zero поднят, не уверен что его можно учитывать тут.). Без отладчика\исходников, конечно, только гипотеза. Вызов начался с lesson2 (учебный пример?) |
Автор: | Иван Денисов [ Понедельник, 02 Май, 2016 22:58 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Странно, что другие приложения работают нормально... Специально для пробы установил несколько по Wine в том числе. Решил проверить еще на другом тесте. Собрал приложение на Linux версии ББ, и.... оно тоже вылетает при первом обращении к процедуре Код: Gl.Clear(Gl.GL_COLOR_BUFFER_BIT + Gl.GL_DEPTH_BUFFER_BIT); Если тут вписать пустое множество вот так Gl.Clear({}) то вылетает дальше на Gl.Transletef. То есть дело в Блэкбоксе получается |
Автор: | Иван Денисов [ Среда, 04 Май, 2016 09:52 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Провел еще один эксперимент. Поместил библиотеки mesa прямо в каталог ББ, переименовал их Вложение: теперь запускаю приложение так: Код: LD_LIBRARY_PATH="." strace ./blackbox это сделано для уверенности, что точно библиотеки для i386 используются. вот тоже видно, что падение на драйвере происходит. Код: brk(0xa3b3000) = 0xa3b3000 poll([{fd=6, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=6, revents=POLLOUT}]) writev(6, [{"\231\7\5\0\17\0 \4\1\0\0\0\1\0\0\0 \0\0\0", 20}, {NULL, 0}, {"", 0}], 3) = 20 poll([{fd=6, events=POLLIN}], 1, -1) = 1 ([{fd=6, revents=POLLIN}]) recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0#\0\5\0\0\0\200\2\0\0\340\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 52 recvmsg(6, 0xffcad8e4, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(6, 0xffcad8e4, 0) = -1 EAGAIN (Resource temporarily unavailable) ioctl(7, DRM_IOCTL_I915_GEM_CREATE, 0xffcad9cc) = 0 ioctl(7, DRM_IOCTL_I915_GEM_SET_TILING, 0xffcad96c) = 0 ioctl(7, DRM_IOCTL_I915_GEM_CREATE, 0xffcad98c) = 0 ioctl(7, DRM_IOCTL_I915_GEM_PWRITE, 0xffcad98c) = 0 --- SIGFPE {si_signo=SIGFPE, si_code=FPE_FLTINV, si_addr=0xf5f67e70} --- Похоже, что придется мне откатываться до 14.04.4 Но еще можно попробовать 32-битную версию 16.04. |
Автор: | Иван Денисов [ Среда, 04 Май, 2016 13:59 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Попробовал 32-битную версию Ubuntu 16.04. Падает также как в 64-битной. Собрал вот такой пример, работает хорошо: http://ivan4b.ru/simple-sdl-opengl-program-tutorial Собрал для 32bit тоже работает нормально. Код: g++ main.cpp -m32 -o cube -lSDL2 -lGL -lGLU
|
Автор: | Иван Денисов [ Четверг, 05 Май, 2016 07:49 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Перестановил систему на 14.04.4, обновился. Через Wine теперь OpenGL и SDL нормально работают! Чтобы SDL2 работал напрямую в Linux версии ставить надо так: Код: sudo apt-get install libsdl2-dev:i386 тогда появится библиотека: Код: /usr/lib/i386-linux-gnu/libSDL2.so
|
Автор: | Иван Денисов [ Четверг, 05 Май, 2016 12:17 ] | ||
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 | ||
Вот в итоге для проверки у меня родился минимальный кроссплатформенный набор. Главный модуль: Ogl/Mod/Demo.odc. В нем все команды для компиляции в конце. Единственная проблема, что при условной компиляции почему-то не заменяются файлы в Ogl/Code. Так что приходится их вручную удалять.
|
Автор: | prospero78 [ Четверг, 05 Май, 2016 12:39 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Так в конечном итоге, в чём проблема-то? (* возможно, перед компиляцией ББ надо перезапустить? Для принудительной выгрузки модулей? Мало ли там чего... *) |
Автор: | Иван Денисов [ Четверг, 05 Май, 2016 16:06 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
prospero78 писал(а): Так в конечном итоге, в чём проблема-то? Проблема в несовместимости драйвера Intel Mesa i965 и Блэкбокса, почему-то вызов многих OpenGL функций Блэкбоксом приводит к падению приложений как напрямую так и через Wine. Так что в итоге я откатился на 14.04.4, тут все работает как надо. Где-то в июне Intel более детально протестируют драйвера для Ubuntu 16.04 и может тогда устранят проблему. Пока не рекомендую никому обновляться до 16.04, обнаружил и другие проблемы (ноут перестал просыпаться, иногда не работает кнопка применить в менеджере сети и настройках системы). prospero78 писал(а): (* возможно, перед компиляцией ББ надо перезапустить? Для принудительной выгрузки модулей? Мало ли там чего... *) Пробовал, не помогает. Видимо дело в контрольных суммах. Умный компилятор думает, что раз контрольная сумма кода не изменилась, то и перекомпиляция не требуется. Как владельца SSD диска меня такой поворот событий очень радует. Это значит, что я могу пересобирать Блэкбокс часто без боязни, что лишний раз данные на диск пишутся Однако надо поправить алгоритм вычисления контрольной суммы с учетом селекторов. |
Автор: | Kemet [ Четверг, 05 Май, 2016 16:11 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Похоже та же самая проблема, как и в соседней теме, связанная с выравниванием. |
Автор: | Иван Денисов [ Четверг, 05 Май, 2016 16:22 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Kemet писал(а): Похоже та же самая проблема, как и в соседней теме, связанная с выравниванием. Так там даже переменных-то нет, которые можно то так то эдак выравнивать... падает на Код: Gl.Clear(Gl.GL_COLOR_BUFFER_BIT + Gl.GL_DEPTH_BUFFER_BIT);
|
Автор: | Kemet [ Четверг, 05 Май, 2016 17:27 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Там есть аргумент, который передается через стек |
Автор: | Иван Денисов [ Пятница, 26 Август, 2016 10:39 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
Kemet писал(а): Там есть аргумент, который передается через стек Ubuntu 14.04 обновила видеодрайвера и библиотеки libGL.so, так что теперь деваться некуда. Надо писать гибкую обертку с подбором сдвига вызова как для SDL2 делал для Linux версии. Но вот из под Wine не представляю как теперь работать с 3D моделированием Видимо надо править компилятор ББ, чтобы он там выравнивал вызовы библиотек как все современные компиляторы... |
Автор: | Иван Денисов [ Суббота, 03 Декабрь, 2016 00:45 ] |
Заголовок сообщения: | Re: BB под Wine в Ubuntu 16.04 |
На сайте Intel вышли в августе драйвера для 16.04 так что вчера рискнул перейти опять на новую систему. https://01.org/linuxgraphics/downloads/ ... -os-v2.0.2 Новый драйвер Intel не помог. Это было грустно. 3D-графика не запускалась. Но сегодня я установил свободный драйвер AMD по инструкции: http://help.ubuntu.ru/wiki/%D1%81%D0%B2 ... %D1%82_amd А также добавил дополнительную опцию в загрузчик: http://www.ubuntublueprint.com/2016/04/ ... river.html Так теперь графика в BlackBox в Ubuntu 16.04 у меня на ноуте работает нормально! Код: dia@dell:~$ lspci -nn | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Mars [Radeon HD 8730M] [1002:6601] (rev ff) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |