OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 09:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Суббота, 30 Апрель, 2016 05:00 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Сам ББ работает нормально, а вот использование подсистемы 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)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Суббота, 30 Апрель, 2016 23:39 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Сборка последнего Wine 1.9.9 из исходников не помогла.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Воскресенье, 01 Май, 2016 10:26 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Если верить сообщению, то ошибка в ДЛЛ от драйверов чипсета 965 (Интел). Так что здесь надо драйвера обновить (скорее), чем вайн (две версии, и обе не работают). И обрати внимание, там тред #9. Т.е. проблемы не в главном потоке (вайн). Есть мнение, что это может быть связано с нарушением при делении на ноль (смотри на есх, евх похоже пытается поделить 5 (или что-то SHORTREAL в виде INTEGER=5) на ноль -- флаг Zero поднят, не уверен что его можно учитывать тут.). Без отладчика\исходников, конечно, только гипотеза.
Вызов начался с lesson2 (учебный пример?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Понедельник, 02 Май, 2016 22:58 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Странно, что другие приложения работают нормально... Специально для пробы установил несколько по Wine в том числе.

Решил проверить еще на другом тесте. Собрал приложение на Linux версии ББ, и.... оно тоже вылетает при первом обращении к процедуре

Код:
Gl.Clear(Gl.GL_COLOR_BUFFER_BIT + Gl.GL_DEPTH_BUFFER_BIT);


Если тут вписать пустое множество вот так Gl.Clear({}) то вылетает дальше на Gl.Transletef.

То есть дело в Блэкбоксе получается :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Среда, 04 Май, 2016 09:52 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Провел еще один эксперимент. Поместил библиотеки mesa прямо в каталог ББ, переименовал их
Вложение:
crashDemo.zip [896.73 КБ]
Скачиваний: 970

теперь запускаю приложение так:
Код:
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.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Среда, 04 Май, 2016 13:59 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Попробовал 32-битную версию Ubuntu 16.04. Падает также как в 64-битной.

Собрал вот такой пример, работает хорошо: http://ivan4b.ru/simple-sdl-opengl-program-tutorial
Собрал для 32bit тоже работает нормально.
Код:
g++ main.cpp -m32 -o cube -lSDL2 -lGL -lGLU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Четверг, 05 Май, 2016 07:49 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Перестановил систему на 14.04.4, обновился. Через Wine теперь OpenGL и SDL нормально работают!

Чтобы SDL2 работал напрямую в Linux версии ставить надо так:
Код:
sudo apt-get install libsdl2-dev:i386


тогда появится библиотека:
Код:
/usr/lib/i386-linux-gnu/libSDL2.so


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Четверг, 05 Май, 2016 12:17 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Вот в итоге для проверки у меня родился минимальный кроссплатформенный набор.
Главный модуль: Ogl/Mod/Demo.odc. В нем все команды для компиляции в конце.
Единственная проблема, что при условной компиляции почему-то не заменяются файлы в Ogl/Code. Так что приходится их вручную удалять.


Вложения:
SDL.zip [1.6 МБ]
Скачиваний: 947
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Четверг, 05 Май, 2016 12:39 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Так в конечном итоге, в чём проблема-то?
(* возможно, перед компиляцией ББ надо перезапустить? Для принудительной выгрузки модулей? Мало ли там чего... *)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Четверг, 05 Май, 2016 16:06 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
prospero78 писал(а):
Так в конечном итоге, в чём проблема-то?

Проблема в несовместимости драйвера Intel Mesa i965 и Блэкбокса, почему-то вызов многих OpenGL функций Блэкбоксом приводит к падению приложений как напрямую так и через Wine. Так что в итоге я откатился на 14.04.4, тут все работает как надо. Где-то в июне Intel более детально протестируют драйвера для Ubuntu 16.04 и может тогда устранят проблему. Пока не рекомендую никому обновляться до 16.04, обнаружил и другие проблемы (ноут перестал просыпаться, иногда не работает кнопка применить в менеджере сети и настройках системы).


prospero78 писал(а):
(* возможно, перед компиляцией ББ надо перезапустить? Для принудительной выгрузки модулей? Мало ли там чего... *)

Пробовал, не помогает. Видимо дело в контрольных суммах. Умный компилятор думает, что раз контрольная сумма кода не изменилась, то и перекомпиляция не требуется. Как владельца SSD диска меня такой поворот событий очень радует. Это значит, что я могу пересобирать Блэкбокс часто без боязни, что лишний раз данные на диск пишутся :)
Однако надо поправить алгоритм вычисления контрольной суммы с учетом селекторов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Четверг, 05 Май, 2016 16:11 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Похоже та же самая проблема, как и в соседней теме, связанная с выравниванием.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Четверг, 05 Май, 2016 16:22 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Kemet писал(а):
Похоже та же самая проблема, как и в соседней теме, связанная с выравниванием.

Так там даже переменных-то нет, которые можно то так то эдак выравнивать... падает на
Код:
Gl.Clear(Gl.GL_COLOR_BUFFER_BIT + Gl.GL_DEPTH_BUFFER_BIT);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Четверг, 05 Май, 2016 17:27 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Там есть аргумент, который передается через стек


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Пятница, 26 Август, 2016 10:39 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Kemet писал(а):
Там есть аргумент, который передается через стек


Ubuntu 14.04 обновила видеодрайвера и библиотеки libGL.so, так что теперь деваться некуда.
Надо писать гибкую обертку с подбором сдвига вызова как для SDL2 делал для Linux версии.

Но вот из под Wine не представляю как теперь работать с 3D моделированием :(
Видимо надо править компилятор ББ, чтобы он там выравнивал вызовы библиотек как все современные компиляторы...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BB под Wine в Ubuntu 16.04
СообщениеДобавлено: Суббота, 03 Декабрь, 2016 00:45 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
На сайте 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)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB